Todos los productos
Search
Centro de documentos

Object Storage Service:Hotlink protection using OSS SDK for Node.js

Última actualización: Sep 03, 2026

Puede configurar una lista de permitidos o una lista de bloqueados de Referer y especificar si se permiten solicitudes con Referer vacío en un bucket de Object Storage Service (OSS). Esto evita el acceso no autorizado a los recursos del bucket y previene cargos inesperados por tráfico.

Notas de uso

  • Antes de configurar la protección contra hotlink, asegúrese de familiarizarse con esta función. Para obtener más información, consulte Hotlink protection.

  • En este tema se utiliza el endpoint público de la región China (Hangzhou). Para acceder a OSS desde otros servicios de Alibaba Cloud en la misma región, utilice un endpoint interno. Para obtener detalles sobre las regiones y endpoints compatibles, consulte Regions and endpoints.

  • En este tema se crea una instancia de OSSClient mediante un endpoint de OSS. Si desea crear una instancia de OSSClient con nombres de dominio personalizados o Security Token Service (STS), consulte Initialize OSS SDK for Node.js.

  • Para configurar la protección contra hotlink, debe contar con el permiso oss:PutBucketReferer. Para consultar las configuraciones de protección contra hotlink, debe contar con el permiso oss:GetBucketReferer. Para obtener más información, consulte Grant a custom policy.

Configurar la protección contra hotlink para un bucket

A continuación se muestra un ejemplo de código para configurar la protección contra hotlink de un bucket:

const OSS = require('ali-oss')

const client = new OSS({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: 'yourregion',
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: 'examplebucket'
});

async function putBucketReferer () {
  try {
  const result = await client.putBucketReferer(client.options.bucket, true, [
  'http://www.aliyun.com',
  'https://www.aliyun.com'
  ]);
  console.log(result);
  } catch (e) {
    console.log(e);
  }
 }

putBucketReferer();

Consultar las configuraciones de protección contra hotlink de un bucket

A continuación se muestra un ejemplo de código para consultar las configuraciones de protección contra hotlink de un bucket:

const OSS = require('ali-oss')

const client = new OSS({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: 'yourregion',
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: 'yourbucketname'
});

async function getBucketReferer () {
  try {
    const result = await client.getBucketReferer('bucket-name');
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

getBucketReferer();

Eliminar las configuraciones de protección contra hotlink de un bucket

A continuación se muestra un ejemplo de código para eliminar las configuraciones de protección contra hotlink de un bucket:

const OSS = require('ali-oss')
const client = new OSS({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: 'yourregion',
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: 'yourbucketname'
});

async function deleteBucketReferer () {
  try {
    const result = await client.deleteBucketReferer('bucket-name');
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

deleteBucketReferer();

Referencias

  • Para consultar el código de ejemplo completo sobre protección contra hotlink, visite GitHub.

  • Para obtener más información sobre la operación de API que permite configurar la protección contra hotlink de un bucket, consulte PutBucketReferer.

  • Para obtener más información sobre la operación de API que permite consultar las configuraciones de protección contra hotlink de un bucket, consulte GetBucketReferer.