|
@@ -30,13 +30,24 @@ const ALI_OSS_BUCKET_SECRET = process.env.ALI_OSS_BUCKET || "hep-textbook"
|
|
|
// AccessKey Secret: KLtQRdIW69KLP7jnzHNUf7eKmdptxH
|
|
|
|
|
|
// 通过STS服务生成临时访问凭证。临时访问凭证包括临时访问密钥(AccessKeyId和AccessKeySecret)和安全令牌(SecurityToken)。
|
|
|
-const { STS } = require('ali-oss');
|
|
|
+const { STS,OSS } = require('ali-oss');
|
|
|
const sts = new STS({
|
|
|
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量ALI_OSS_ACCESS_KEY_ID和ALI_OSS_ACCESS_KEY_SECRET。
|
|
|
accessKeyId: ALI_OSS_ACCESS_KEY_ID,
|
|
|
accessKeySecret: ALI_OSS_ACCESS_KEY_SECRET
|
|
|
});
|
|
|
|
|
|
+const ossClient = new OSS({
|
|
|
+ // yourRegion填写Bucket所在地域。以华东1(杭州)为例,yourRegion填写为oss-cn-hangzhou。
|
|
|
+ region: "oss-cn-beijing",
|
|
|
+ // 从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。
|
|
|
+ accessKeyId: ALI_OSS_ACCESS_KEY_ID,
|
|
|
+ accessKeySecret: ALI_OSS_ACCESS_KEY_SECRET,
|
|
|
+ // 填写Bucket名称。
|
|
|
+ bucket: result?.ALI_OSS_BUCKET || "hep-textbook",
|
|
|
+ timeout:5000*1000
|
|
|
+});
|
|
|
+
|
|
|
|
|
|
function getAliyunOssAccessToken(){
|
|
|
|
|
@@ -77,4 +88,18 @@ function getAliyunOssAccessToken(){
|
|
|
module.exports.getAliyunOssAccessToken = getAliyunOssAccessToken
|
|
|
if(argv?.test){
|
|
|
getAliyunOssAccessToken()
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+ // 获取临时签名地址
|
|
|
+async function signatureUrl(url,options){
|
|
|
+ let expires = options?.expires || 600 // 默认10分钟
|
|
|
+ let urlObj = new URL(url)
|
|
|
+ let fileKey = decodeURIComponent(urlObj.pathname)
|
|
|
+ // let r1 = await this.client?.get(fname, file, putOptions);
|
|
|
+ let r1 = await ossClient?.signatureUrl(fileKey, {
|
|
|
+ expires: expires,
|
|
|
+ });
|
|
|
+ console.log(r1)
|
|
|
+ return r1;
|
|
|
+}
|
|
|
+module.exports.signatureUrl = signatureUrl
|