更新时间:2024-10-11 gmt 08:00
上传对象时设置指定对象生命周期(node.js sdk)-九游平台

开发过程中,您有任何问题可以在github上,或者在中发帖求助。
功能说明
上传对象或者初始化分段上传任务时,您可以使用expires参数直接指定对象的过期时间。此方式仅支持设置以天为单位的对象过期时间,过期后的对象会被obs服务端自动清理,其优先级高于桶生命周期规则。
代码示例一:上传对象
上传对象时,您可以直接指定对象的过期时间。代码示例如下:
// 引入obs库 // 使用npm安装 const obsclient = require("esdk-obs-nodejs"); // 使用源码安装 // var obsclient = require('./lib/obs'); // 创建obsclient实例 const obsclient = new obsclient({ // 推荐通过环境变量获取aksk,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险 // 您可以登录访问管理控制台获取访问密钥ak/sk,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html access_key_id: process.env.access_key_id, secret_access_key: process.env.secret_access_key, // 【可选】如果使用临时ak/sk和securitytoken访问obs,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥ak/sk,也可以使用其他外部引入方式传入 // security_token: process.env.security_token, // endpoint填写bucket对应的endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写 server: "https://obs.cn-north-4.myhuaweicloud.com", }); async function putobject() { try { const params = { // 指定存储桶名称 bucket: "examplebucket", // 指定对象名,此处以 example/objectname 为例 key: "example/objectname", // localfile为待上传的本地文件路径,需要指定到具体的文件名 sourcefile : 'localfile', // 指定对象的过期时间,此处以30为例,单位是天 expires : 30 }; // 文件上传 const result = await obsclient.putobject(params); if (result.commonmsg.status <= 300) { console.log("put bucket(%s) successful!", params.bucket); console.log("requestid: %s", result.commonmsg.requestid); return; }; console.log("an obserror was found, which means your request sent to obs was rejected with an error response."); console.log("status: %d", result.commonmsg.status); console.log("code: %s", result.commonmsg.code); console.log("message: %s", result.commonmsg.message); console.log("requestid: %s", result.commonmsg.requestid); } catch (error) { console.log("an exception was found, which means the client encountered an internal problem when attempting to communicate with obs, for example, the client was unable to access the network."); console.log(error); }; }; putobject()
代码示例二:初始化分段上传任务
初始化分段上传任务时,您可以直接指定对象的过期时间。代码示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
// 引入obs库 // 使用npm安装 constobsclient=require("esdk-obs-nodejs"); // 使用源码安装 // var obsclient = require('./lib/obs'); // 创建obsclient实例 constobsclient=newobsclient({ // 推荐通过环境变量获取aksk,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险 // 您可以登录访问管理控制台获取访问密钥ak/sk,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html access_key_id:process.env.access_key_id, secret_access_key:process.env.secret_access_key, // 【可选】如果使用临时ak/sk和securitytoken访问obs,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥ak/sk,也可以使用其他外部引入方式传入 // security_token: process.env.security_token, // endpoint填写bucket对应的endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写 server:"https://obs.cn-north-4.myhuaweicloud.com", }); asyncfunctioninitiatemultipartupload(){ try{ constparams={ // 指定存储桶名称 bucket:"examplebucket", // 指定对象名,此处以 example/objectname 为例。 key:"example/objectname", // 指定对象的过期时间,此处以30为例,单位是天 expires:30 }; // 初始化上传段任务 constresult=awaitobsclient.initiatemultipartupload(params); if(result.commonmsg.status<=300){ console.log("initiate multipart upload successfull with bucket(%s) and object(%s)!",params.bucket,params.key); console.log("requestid: %s",result.commonmsg.requestid); console.log("uploadid: %s",result.interfaceresult.uploadid); return; }; console.log("an obserror was found, which means your request sent to obs was rejected with an error response."); console.log("status: %d",result.commonmsg.status); console.log("code: %s",result.commonmsg.code); console.log("message: %s",result.commonmsg.message); console.log("requestid: %s",result.commonmsg.requestid); }catch(error){ console.log("an exception was found, which means the client encountered an internal problem when attempting to communicate with obs, for example, the client was unable to access the network."); console.log(error); }; }; initiatemultipartupload(); |
父主题:
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨