Por padrão, ao chamar a operação GetObject em um objeto de um bucket com versionamento ativado, apenas a versão atual do objeto é retornada.
Informações básicas
Ao chamar a operação GetObject em um bucket, uma das seguintes situações se aplica:
Se a versão atual do objeto for um marcador de exclusão, o OSS retorna 404 Not Found.
Caso você especifique o versionId de um objeto no parâmetro de consulta, a versão indicada será retornada. Se definir o versionId como "null", o sistema retorna a versão do objeto que possui um versionId nulo.
Ao tentar recuperar um marcador de exclusão especificando seu versionId, o OSS retorna 405 Method Not Allowed.
Permissões
Por padrão, uma conta Alibaba Cloud possui permissões totais. Usuários RAM ou funções RAM vinculados a essa conta não têm nenhuma permissão inicialmente. A conta Alibaba Cloud ou o administrador da conta deve conceder as permissões de operação por meio de políticas do RAM ou Bucket Policy.
|
API |
Action |
Descrição |
|
GetObject |
|
Baixe um objeto. |
|
|
Necessária quando se especifica a versão do objeto via versionId durante o download. |
|
|
|
Exigida caso os metadados do objeto contenham X-Oss-Server-Side-Encryption: KMS no momento do download. |
Código de exemplo
O código abaixo demonstra como baixar um arquivo:
const OSS = require('ali-oss');
const client = new OSS({
// Set yourregion to the region where the bucket is located. For example, for the China (Hangzhou) region, set Region to oss-cn-hangzhou.
region: 'yourregion',
// Obtain access credentials from environment variables. Before you run this code, ensure 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 yourbucketname to the name of the bucket.
bucket: 'yourbucketname'
});
async function get() {
// The name of the file.
const result = await client.get('filename', {
// The version ID of the file to download.
versionId: 'versionid',
});
console.log(result.content);
}
get();
Referências
Para mais detalhes sobre a operação de API utilizada para baixar arquivos, consulte GetObject.