全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
对象存储 OSS

常见问题

更新时间:2018-04-28 22:59:12

如何调用 STS

浏览器是不受信任的环境,如果把 AccessKeyId 和 AccessKeySecret 直接保存在浏览器端,存在极高的风险。建议在浏览器环境下使用 STS 模式进行 OSS 接口调用。

浏览器中使用 STS Server 相关文档

获取 STS token 后,就可进行 SDK 初始化操作。

  1. <script type="text/javascript">
  2. $.ajax("http://your_sts_server/",{method: 'GET'},function (err, result) {
  3. var client = new OSS.Wrapper({
  4. accessKeyId: result.AccessKeyId,
  5. accessKeySecret: result.AccessKeySecret,
  6. stsToken: result.SecurityToken,
  7. endpoint: '<oss endpoint>',
  8. bucket: '<Your bucket name>'
  9. });
  10. });
  11. </script>

如何 HTTPS 访问

初始化 SDK 时,可传入以下几个参数:

  • region: 参数是指您申请 OSS 服务时的区域,例如oss-cn-hangzhou。完整的区域列表可以在 OSS 服务节点查看。
  • internal: 配合region使用,如果指定 internaltrue,则访问内网节点。
  • secure: 配合region使用,如果指定了securetrue,则使用 HTTPS 访问。
  • endpoint: 例如http://oss-cn-hangzhou.aliyuncs.com,如果指定了endpoint,则region会被忽略,endpoint可以指定HTTPS,也可以是IP形式。

浏览器跨域问题如何解决

在浏览器中使用 SDK 前,先要设置 Bucket 的 CORS 属性。具体步骤,请查看相关文档

如何设置上传文件的用户自定义数据(meta),文件类型(mime)和请求头(header)

参考浏览器分片上传

关于浏览器端断点续传的说明

可以将checkpoint保存到浏览器的localstorage,下次再调用的时候传入checkpoint参数,就可以实现断点续传功能。

如何获取上传进度

使用分片上传时,可获取上传进度。相关文档

需注意,progress 参数可以是一个 generator function(function*),也可以是一个”thunk”:

  1. var progress = function (p) {
  2. return function (done) {
  3. console.log(p);
  4. done();
  5. };
  6. };

如何获取下载进度

浏览器中无法获取进度,可调用 signatureUrl 方法,获取下载地址,可查看相关文档

如何上传文件到指定目录

给要上传的 object 名称前加指定目录前缀即可,可参考: OSS 和文件系统对比

  1. var co = require('co');
  2. var OSS = require('ali-oss')
  3. var client = new OSS({
  4. region: '<Your region>',
  5. accessKeyId: '<Your AccessKeyId>',
  6. accessKeySecret: '<Your AccessKeySecret>',
  7. bucket: 'Your bucket name'
  8. });
  9. co(function* () {
  10. var result = yield client.multipartUpload('base-dir/' +'object-key', 'local-file', {
  11. progress: function* (p) {
  12. console.log('Progress: ' + p);
  13. }
  14. });
  15. console.log(result);
  16. }).catch(function (err) {
  17. console.log(err);
  18. });

如何上传base64编码的图片

可参考Github示例

如何限制上传文件的大小

在浏览器中可以根据document.getElementById(“file”).files[0].size 获取上传文件的大小(字节数),可参考web直传的post请求。

如何获取object的签名URL

可调用 signatureUrl 方法,获取下载地址,可查看相关文档

如何使用sdk生成的签名URL并进行资源上传

签名URL常用于授权给第三方进行资源的下载和上传操作。下载请参见上一条。sdk中提供signatureUrl API,用于返回一个经过签名的url,用户直接使用这个url上传或者下载资源即可。利用签名URL上传资源请参考sdk工程示例:签名url上传资源示例

如何使用表单上传方式上传资源到OSS服务器

可参考 Web 端直传实践

常见错误参考

本文导读目录