本文介绍如何拷贝文件(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()