Todos os produtos
Search
Central de documentação

Object Storage Service:Proteção contra hotlink usando o OSS SDK para Node.js

Última atualização: Jul 03, 2026

Configure uma lista de permissões ou uma lista de bloqueios de Referer e defina se solicitações com Referer vazio são permitidas em um bucket do Object Storage Service (OSS). Essa configuração evita acessos não autorizados aos recursos do bucket e previne custos inesperados de tráfego.

Observações de uso

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

  • Este tópico utiliza o endpoint público da região China (Hangzhou). Para acessar o OSS a partir de outros serviços da Alibaba Cloud na mesma região, use um endpoint interno. Para obter detalhes sobre as regiões e endpoints suportados, consulte Regiões e endpoints.

  • Os exemplos abaixo criam uma instância OSSClient usando um endpoint do OSS. Caso precise criar uma instância OSSClient com domínios personalizados ou Security Token Service (STS), consulte Inicializar o OSS SDK para Node.js.

  • A configuração da proteção contra hotlink exige a permissão oss:PutBucketReferer. Já a consulta das configurações requer a permissão oss:GetBucketReferer. Para mais informações, consulte Conceder uma política personalizada.

Configurar a proteção contra hotlink para um bucket

O código a seguir exemplifica como configurar 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

Utilize o exemplo abaixo para 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();

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

Para remover as configurações de proteção contra hotlink de um bucket, execute o código a seguir:

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

  • Acesse o GitHub para visualizar o código de exemplo completo sobre proteção contra hotlink.

  • Consulte PutBucketReferer para obter mais detalhes sobre a operação de API usada na configuração da proteção contra hotlink.

  • Mais informações sobre a operação de API para consulta das configurações de proteção contra hotlink estão disponíveis em GetBucketReferer.