本文介绍如何拷贝文件。

使用copy拷贝文件时分以下两种情况:

  • 同一个 Bucket。
  • 同一个 Region 下的两个不同 Bucket,此时源 Object 名字应为 '/bucket/object' 的形式。

另外,拷贝时对文件元信息的处理有两种选择:

  • 如果没有指定meta参数,则与源文件相同,即拷贝源文件的元信息。
  • 如果指定了meta参数,则使用新的元信息覆盖源文件的元信息。

以下代码用于拷贝文件:

let OSS = require('ali-oss')

let client = new OSS({
  region: '<Your region>',
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>',
  bucket: '<Your bucket name>',
});

async function copy () {
  try {
     // 两个Bucket之间拷贝
    let result = await client.copy('to', '/from-bucket/from');
    console.log(result);

    // 拷贝元信息
    let result = await client.copy('to', 'from');
    console.log(result);

    // 覆盖元信息
    let result = await client.copy('to', 'from', {
      meta: {
        year: 2015,
        people: 'mary'
      }
    });
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}