我正在編寫一個rpgmaker的插件,就是實現從oss上下載東西(比如logo.js)
原理大概是:發送請求給sts服務器,sts返回一些登錄的臨時數據,再拿臨時數據訪問oss服務器
然後看大陸阿里官方的文檔沒怎麼看懂,就寫下了這樣的代碼
(應該很多地方都參數搞錯了qwq,不知道怎麼寫,應該沒人想過RPGMaker+OSS)
(function() {
fetch('http://sts.oss.hk.furcafe.top/') /*我的sts服務器
.then(resp => resp.json())
.then(result => {
const store = new OSS({
// 从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。
accessKeyId: result.AccessKeyId,
accessKeySecret: result.AccessKeySecret,
// 从STS服务获取的安全令牌(SecurityToken)。
stsToken: result.SecurityToken,
// 填写Bucket所在地域。以华东1(杭州)为例,设置region为oss-cn-hangzhou。
region: 'oss-cn-hongkong',
// 填写Bucket名称,例如examplebucket。
bucket: 'furcafe-hk'
});
// 定义插件函数
function downloadFile(fileKey, localPath) {
client.assumeRole('acs:ram::1526461602713651:role/ramosstest', stsToken, 3600).then(function (result) {
var oss = require('ali-oss'); // 引入阿里云OSS SDK
var client = new oss({
accessKeyId: result.credentials.AccessKeyId,
accessKeySecret: result.credentials.AccessKeySecret,
stsToken: result.credentials.SecurityToken,
bucket: 'furcafe-hk',
region: 'oss-cn-hongkong'
}); // 初始化OSS客户端
client.getObject({
Bucket: 'oss-cn-hongkong',
Key: fileKey
}).then(function (response) {
// 下载成功,将文件保存到本地
var fs = require('fs');
fs.writeFileSync(localPath, response.content);
console.log('File downloaded successfully!');
}).catch(function (err) {
// 下载失败,输出错误信息
console.log(err);
});
}).catch(function (err) {
// 获取临时访问凭证失败,输出错误信息
console.log(err);
});
}
// 将插件函数添加到RPGmaker的全局对象中
window.OSSDownload = {
downloadFile: downloadFile
};
})()})
懇求各位大佬們,能幫就幫吧,謝謝!(小絕望,真的有人能解決嗎?
(代碼可直接重寫,如果您願意)