本文介绍如何拷贝文件(Object)。拷贝文件时,您可以根据实际设置目标文件的HTTP头以及自定义目标文件的元信息。
说明 关于文件元信息的更多信息,请参见开发指南中的
管理文件元信息。
以下代码用于在同一个Bucket中拷贝文件。
const OSS = require('ali-oss');
const client = new OSS({
// yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
region: 'yourRegion',
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// 填写Bucket名称。
bucket: 'examplebucket',
// 设置是否启用HTTPS。设置secure为true时,表示启用。
//secure: true
})
// 拷贝同一个Bucket中的文件。
// 填写拷贝后和拷贝前的文件完整路径。文件完整路径中不能包含Bucket名称。
client.copy('dstexampleobject.txt', 'srcexampleobject.txt',
// 设置目标文件的HTTP头和自定义目标文件的元信息。
//{
// 指定headers参数,设置目标文件的HTTP头。如果未指定headers参数,则目标文件与源文件的HTTP头相同,即拷贝源文件的HTTP头。
//headers:{
//'Cache-Control': 'no-cache',
//},
// 指定meta参数,自定义目标文件的元信息。如果未指定meta参数,目标文件与源文件的元信息相同,即拷贝源文件的元信息。
//meta:{
//location: 'hangzhou',
//year: 2015,
//people: 'mary'
//}
//}
).then((res) => {
console.log(res);
}).catch(e => {
console.log(e);
})
以下代码用于在同一个Region下的两个不同Bucket中拷贝文件。
const OSS = require('ali-oss')
const client = new OSS({
// yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
region: 'yourRegion',
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// 填写目标Bucket名称。
bucket: 'dstexamplebucket',
});
async function copy () {
try {
// 拷贝同一个Region下的两个不同Bucket中的文件时,源文件的地址格式为'/bucketname/objectname'。
const result = await client.copy('dstexampleobjectnew.txt', '/srcexamplebucket/srcexampleobject.txt',
// 设置目标文件的HTTP头和自定义目标文件的元信息。
//{
// 指定headers参数,设置目标文件的HTTP头。如果未指定headers参数,则目标文件与源文件的HTTP头相同,即拷贝源文件的HTTP头。
//headers:{
//'Cache-Control': 'no-cache',
//},
// 指定meta参数,自定义目标文件的元信息。如果未指定meta参数,目标文件与源文件的元信息相同,即拷贝源文件的元信息。
//meta:{
//location: 'hangzhou',
//year: 2015,
//people: 'mary'
//}
//}
);
console.log(result);
} catch (e) {
console.log(e);
}
}
copy()