既定では、バージョン管理が有効なバケット内のオブジェクトに対してGetObject操作を呼び出すと、オブジェクトの現在のバージョンのみが返されます。
背景情報
GetObject操作を呼び出してバケット内のオブジェクトをダウンロードすると、次のいずれかの結果が得られます。
オブジェクトの現在のバージョンが削除マーカーである場合、OSSは404 Not Foundを返します。
リクエストでオブジェクトのバージョンIDが指定されている場合、OSSは指定されたバージョンのオブジェクトを返します。 リクエストでバージョンIDがnullに設定されている場合、OSSはバージョンIDがnullのバージョンを返します。
リクエストで指定されたバージョンIDが削除マーカーのバージョンIDである場合、OSSは405メソッドが許可されていません。
サンプルコード
次のコードは、オブジェクトをダウンロードする方法の例を示しています。
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 your bucket.
bucket: 'yourbucketname'
});
async function get() {
// Specify the name of the object.
const result = await client.get('filename', {
// Display the version ID of the downloaded object.
versionId: 'versionid',
});
console.log(result.content);
}
get();
関連ドキュメント
オブジェクトをダウンロードするために呼び出すことができるAPI操作の詳細については、「GetObject」をご参照ください。