すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:オブジェクトの名前変更

最終更新日:Dec 18, 2023

オブジェクトの名前を直接変更することはできません。 バケット内のオブジェクトの名前を変更するには、CopyObject操作を呼び出してソースオブジェクトを宛先オブジェクトにコピーし、DeleteObject操作を呼び出してソースオブジェクトを削除します。

サンプルコード

次のサンプルコードは、examplebucketバケット内のsrcobject.txtという名前のオブジェクトの名前をdestobject.txtに変更する方法の例を示しています。

const OSS = require('ali-OSS ');
const client = new OSS({
  // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。 
  リージョン: 'oss-cn-hangzhou' 、
  // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID、
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
  // バケットの名前を指定します。 
  bucket: 'examplebucket' 、})

async関数renameObject() {
  try {
    // srcobject.txtオブジェクトを同じバケット内のdestobject.txtオブジェクトにコピーします。 
    const r = await client.copy('destobject.txt '、'srcobject.txt');
    console.log ('Copied', r);
    // srcobject.txtオブジェクトを削除します。 
    const deleteResult = await client.delete('srcobject.txt ');
    console.log(deleteResult);
  } catch (e) {
    console.log(e);
  }
}

renameObject(); 
説明

バケット内のディレクトリの名前も直接変更できません。 バケット内のディレクトリの名前を変更するには、上記の例に従って、ディレクトリ内のサブディレクトリとオブジェクトの名前を1つずつ変更します。

参考資料

オブジェクトの名前を変更するために呼び出すAPI操作の詳細については、「CopyObject」および「DeleteObject」をご参照ください。