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ãooss: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.