Skip to content

Commit 6234091

Browse files
authored
Dev/1.8.4 (#217)
* feat: 更换 xml 解析库 * feat: 增加重试请求头
1 parent 8742a22 commit 6234091

File tree

11 files changed

+2262
-5823
lines changed

11 files changed

+2262
-5823
lines changed

demo/demo.js

Lines changed: 53 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1350,43 +1350,63 @@ function sliceUploadFile() {
13501350
);
13511351
}
13521352

1353+
function upload(file) {
1354+
// stsUrl 是上方搭建的临时密钥服务
1355+
const stsUrl = `http://127.0.0.1:3000/getKeyAndCredentials?filename=${file.name}`;
1356+
return new Promise((resolve, reject) => {
1357+
fetch(stsUrl)
1358+
.then((response) => response.json())
1359+
.then((data) => {
1360+
// 服务端接口需要返回:上传的存储桶、地域、随机路径的对象键、临时密钥
1361+
console.log('getKeyAndCredentials:', data);
1362+
// 在返回值里取临时密钥信息,上传的文件路径信息
1363+
const { TmpSecretId, TmpSecretKey, SessionToken, StartTime, ExpiredTime, Bucket, Region, Key } = data;
1364+
// 创建 JS SDK 实例,传入临时密钥参数
1365+
// 其他配置项可参考下方 初始化配置项
1366+
const cos = new COS({
1367+
SecretId: TmpSecretId,
1368+
SecretKey: TmpSecretKey,
1369+
SecurityToken: SessionToken,
1370+
StartTime: StartTime,
1371+
ExpiredTime: ExpiredTime,
1372+
});
1373+
// 上传文件
1374+
cos.uploadFile(
1375+
{
1376+
Bucket,
1377+
Region,
1378+
Key,
1379+
Body: file, // 要上传的文件对象。
1380+
onProgress: function (progressData) {
1381+
console.log('上传进度:', progressData);
1382+
},
1383+
},
1384+
function (err, data) {
1385+
console.log('上传结束', err || data);
1386+
if (err) {
1387+
reject(err);
1388+
} else {
1389+
resolve(data);
1390+
}
1391+
}
1392+
);
1393+
})
1394+
.catch((error) => {
1395+
console.error('获取上传路径和临时密钥失败', error);
1396+
reject(error);
1397+
});
1398+
});
1399+
}
1400+
13531401
function selectFileToUpload() {
13541402
// 选择本地文件上传
1355-
util.selectLocalFile(function (files) {
1403+
util.selectLocalFile(async function (files) {
13561404
var file = files && files[0];
13571405
if (!file) return;
1358-
if (file.size > 1024 * 1024 * 3) {
1359-
cos.sliceUploadFile(
1360-
{
1361-
Bucket: config.Bucket, // Bucket 格式:test-1250000000
1362-
Region: config.Region,
1363-
Key: file.name,
1364-
Body: file,
1365-
// Callback: COS.util.encodeBase64(JSON.stringify(callback)),
1366-
// CallbackVar: COS.util.encodeBase64(JSON.stringify(callbackVar)),
1367-
// ReturnBody: COS.util.encodeBase64(JSON.stringify(returnBody)),
1368-
// PicOperations: '{"is_pic_info": 1, "rules": [{"fileid": "test.jpg", "rule": "imageMogr2/thumbnail/!50p"}]}',
1369-
},
1370-
function (err, data) {
1371-
logger.log('selectFileToUpload:', err || data);
1372-
}
1373-
);
1374-
} else {
1375-
cos.putObject(
1376-
{
1377-
Bucket: config.Bucket, // Bucket 格式:test-1250000000
1378-
Region: config.Region,
1379-
Key: file.name,
1380-
Body: file,
1381-
// Callback: COS.util.encodeBase64(JSON.stringify(callback)),
1382-
// CallbackVar: COS.util.encodeBase64(JSON.stringify(callbackVar)),
1383-
// ReturnBody: COS.util.encodeBase64(JSON.stringify(returnBody)),
1384-
// PicOperations: '{"is_pic_info": 1, "rules": [{"fileid": "test.jpg", "rule": "imageMogr2/thumbnail/!50p"}]}',
1385-
},
1386-
function (err, data) {
1387-
logger.log('selectFileToUpload:', err || data);
1388-
}
1389-
);
1406+
try {
1407+
const res = await upload(file);
1408+
} catch (e) {
1409+
console.log(e);
13901410
}
13911411
});
13921412
}

demo/index.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,14 +142,13 @@ <h1>
142142
ciMain.className = 'main cos-main show';
143143
});
144144

145-
146145
var getAuthorization = function (options, callback) {
147146
// 格式一、(推荐)后端通过获取临时密钥给到前端,前端计算签名
148147
// 服务端 JS 和 PHP 例子:https://github.com/tencentyun/cos-js-sdk-v5/blob/master/server/
149148
// 服务端其他语言参考 COS STS SDK :https://github.com/tencentyun/qcloud-cos-sts-sdk
150149
var url = '/sts'; // 如果是 npm run sts.js 起的 nodejs server,使用这个
151150
var xhr = new XMLHttpRequest();
152-
xhr.open('POST', url, true);
151+
xhr.open('get', url, true);
153152
xhr.setRequestHeader('Content-Type', 'application/json');
154153
xhr.onload = function (e) {
155154
try {

0 commit comments

Comments
 (0)