De forma predeterminada, cuando se llama a la operación GetObject sobre un objeto en un bucket con control de versiones habilitado, solo se devuelve la versión actual del objeto.
Contexto
Al llamar a la operación GetObject en un bucket, se aplica uno de los siguientes casos:
Si la versión actual del objeto es una marca de eliminación, OSS devuelve 404 Not Found.
Si especifica el versionId de un objeto en el parámetro de consulta, se devuelve la versión indicada. Si establece el versionId en "null", se devuelve la versión del objeto que tiene un versionId nulo.
Si intenta recuperar una marca de eliminación al especificar su versionId, OSS devuelve 405 Method Not Allowed.
Permisos
De forma predeterminada, una cuenta de Alibaba Cloud tiene todos los permisos. Los usuarios o roles de RAM asociados a una cuenta de Alibaba Cloud no cuentan con ningún permiso de manera predeterminada. La cuenta de Alibaba Cloud o el administrador de la cuenta debe otorgar los permisos de operación mediante RAM policies o Bucket Policy.
|
API |
Action |
Descripción |
|
GetObject |
|
Descarga un objeto. |
|
|
Este permiso es obligatorio cuando se descarga un objeto y se especifica su versión mediante versionId. |
|
|
|
Este permiso es obligatorio cuando se descarga un objeto cuyos metadatos contienen X-Oss-Server-Side-Encryption: KMS. |
Código de ejemplo
A continuación se muestra un código de ejemplo para descargar un archivo:
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();
Referencias
Para obtener más información sobre la operación de API utilizada para descargar archivos, consulte GetObject.