您的位置:首页 > Web前端 > JavaScript

javascript 上传文件到 oss

2016-04-21 21:04 746 查看
1.实现思想

加载所需js文件,获取文件对象,初始化OSS对象,上传

核心方法var callback = function(){

var client = new OSS({
region: 'oss-cn-hangzhou',
accessKeyId: 'your id',
accessKeySecret: 'your secret',
bucket: 'your bucker'
});

OSS.co(function* () {
var result = yield client.multipartUpload("flag",file);
console.log(result);
}).catch(function (err) {
console.log(err);
});
} 2.具体代码
<input type="file" name="doc" id="doc"
onchange="javascript:setImagePreview();">
function setImagePreview() {
var docObj=document.getElementById("doc");

var client = new OSS({
region: 'oss-cn-hangzhou',
accessKeyId: '',
accessKeySecret: '',
bucket: ''
});

OSS.co(function* () {
var result = yield client.multipartUpload("",docObj.files[0]);
console.log(result);
}).catch(function (err) {
console.log(err);
});

}
3.改进
由于这种方法将ID和密码写在js文件之中,及不安全。以此采用sts方式。

实现步骤,ajax获取临时的AccessKeyId,AccessKeySecret,SecurityToken然后初始化OSS对象,上传
function setImagePreview() {
var docObj=document.getElementById("doc");
if(docObj.files && docObj.files[0]){

$.getJSON("http://localhost:8080/***/STSRequest?prefix=user/", function(data){

AccessKeyId = data.AccessKeyId;
AccessKeySecret = data.AccessKeySecret;
SecurityToken = data.SecurityToken;
//使用回调函数
callback();

});

var callback = function(){

var client = new OSS({
{ //已杭州节点为例
region: 'oss-cn-hangzhou',
accessKeyId: AccessKeyId,
accessKeySecret: AccessKeySecret,
stsToken: SecurityToken,
bucket: '9'
});

OSS.co(function* () {
var result = yield client.multipartUpload("*.jsp",docObj.files[0]);
console.log(result);
}).catch(function (err) {
console.log(err);
});
}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript oss 图片