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