Todos os produtos
Search
Central de documentação

Object Storage Service:Hotlink protection usando o OSS SDK para Node.js

Última atualização: Sep 22, 2026

Configure uma lista de permissões ou uma lista de bloqueios de Referer e especifique se requisições com Referer vazio são permitidas para um bucket do Object Storage Service (OSS). Isso evita acesso não autorizado aos recursos do bucket e taxas de tráfego inesperadas.

Notas de uso

  • Antes de configure a proteção contra hotlink, familiarize-se com esse recurso. Para mais informações, consulte Hotlink protection.

  • Neste tópico, utiliza-se o endpoint público da região China (Hangzhou). Para acessar o OSS a partir de outros serviços Alibaba Cloud na mesma região, use um endpoint interno. Para detalhes sobre regiões e endpoints compatíveis, consulte Regions and endpoints.

  • Neste tópico, a instância OSSClient é criada por meio de um endpoint OSS. Para crie uma instância OSSClient usando nomes de domínio personalizados ou Security Token Service (STS), consulte Initialize OSS SDK for Node.js.

  • A configuração da proteção contra hotlink exige a permissão oss:PutBucketReferer. A consulta das configurações de proteção contra hotlink exige a permissão oss:GetBucketReferer. Para mais informações, consulte Grant a custom policy.

Configure a proteção contra hotlink para um bucket

O código a seguir demonstra como configure a proteção contra hotlink para um 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 as configurações de proteção contra hotlink de um bucket

O código a seguir mostra como consultar as configurações de proteção contra hotlink de um 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();

Exclua as configurações de proteção contra hotlink de um bucket

O código a seguir ilustra como exclua as configurações de proteção contra hotlink de um 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();

Referências

  • Para acessar o código de exemplo completo da proteção contra hotlink, visite o GitHub.

  • Para mais informações sobre a operação de API usada para configure a proteção contra hotlink de um bucket, consulte PutBucketReferer.

  • Para detalhes sobre a operação de API usada para consultar as configurações de proteção contra hotlink de um bucket, consulte GetBucketReferer.