var uploader = new plupload.Uploader({

runtimes : 'html5,flash,silverlight,html4',

browse_button : 'selectfiles',

//runtimes : 'flash',

container: document.getElementById('container'),

flash_swf_url : 'lib/plupload-2.1.2/js/Moxie.swf',

silverlight_xap_url : 'lib/plupload-2.1.2/js/Moxie.xap',

url : host,

multipart_params: {

'Filename': '${filename}',

'key' : '${filename}',

'policy': policyBase64,

'OSSAccessKeyId': accessid,

'success_action_status' : '200', //让服务端返回200,不然,默认会返回204

'signature': signature,

},

....

}

签名signature主要是对policyText进行签名,最简单的例子如下:

var policyText = {

"expiration": "2020-01-01T12:00:00.000Z", //       设置该Policy的失效时间,超过这个失效时间之后,就没有办法通过这个policy上传文件了

"conditions": [

["content-length-range", 0, 1048576000] // 设置上传文件的大小限制,如果超过了这个大小,文件上传到OSS会报错的

]

}

Cors(跨域访问)

注意:如果一定要保证bucket属性Cors设置支持POST方法。因为这个HTML直接上传到OSS,会产生跨域请求。必须在bucket属性里面设置允许跨域, 可以在OSS控制台里面设置

设置如下图:

代码下载

http://files.cnblogs.com/files/ossteam/oss-h5-upload-js-direct.tar.gz

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐