Além das listas de controle de acesso (ACLs) no nível de bucket, o Object Storage Service (OSS) oferece ACLs no nível de objeto. Configure a ACL de um objeto durante o upload ou altere a ACL de um objeto já enviado.
Tipos de permissão de acesso
As permissões de acesso a objetos (ACLs) dividem-se nos quatro tipos a seguir:
|
Permissão de acesso |
Descrição |
Valor da permissão de acesso |
|
Herdar do bucket |
O objeto herda as permissões de acesso do bucket. |
default |
|
Privado |
O proprietário do objeto e os usuários autorizados têm permissões de leitura e gravação. Outros usuários não têm permissão para acessar o objeto. |
private |
|
Leitura pública |
O proprietário do objeto e os usuários autorizados têm permissões de leitura e gravação. Outros usuários têm apenas permissão de leitura. Use esta permissão com cautela. |
public-read |
|
Leitura e gravação públicas |
Todos os usuários têm permissões de leitura e gravação no objeto. Use esta permissão com cautela. |
public-read-write |
Defina permissões de acesso a objetos
O exemplo de código a seguir mostra como configurar a ACL de um objeto:
const oss = require('ali-oss');
const client = oss({
// Set region to the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set region to oss-cn-hangzhou.
region: 'yourregion',
// Obtain access credentials from environment variables. Before running the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Set bucket to the name of your bucket.
bucket: 'yourbucketname'
});
async function setACL() {
try {
// Set yourObjectName to the full path of the object. The full path cannot contain the bucket name.
await client.putACL('yourObjectName', 'private');
console.log('Set ACL successfully');
} catch (e) {
console.error(e);
}
}
setACL();
Obter permissões de acesso a objetos
O exemplo de código a seguir mostra como consultar a ACL de um objeto:
const oss = require('ali-oss');
const client = oss({
// Set region to the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set region to oss-cn-hangzhou.
region: 'yourregion',
// Obtain access credentials from environment variables. Before running the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Set bucket to the name of your bucket.
bucket: 'yourbucketname',
});
async function getACL() {
try {
// Set yourObjectName to the full path of the object. The full path cannot contain the bucket name.
const result = await client.getACL('yourObjectName');
console.log(result.acl);
} catch (e) {
console.error(e);
}
}
getACL();
Referências
Para obter o código de exemplo completo sobre gerenciamento de permissões de acesso a objetos, consulte o exemplo no GitHub.
Para mais informações sobre a operação de API destinada a definir permissões de acesso a objetos, consulte PutObjectACL.
Para mais detalhes sobre a operação de API usada para recuperar permissões de acesso a objetos, consulte GetObjectACL.