阿里云oss使用签名url上传时的一些配置注意事项
我来讲一下测试下来遇到的问题点和解决方案:
一、配置相关问题
-
你可以先按照阿里云的文档把一些oss的基本配置弄好,再看下面的内容;
-
配置跨域访问规则;
这是非常重要的一步。默认情况下,oss不允许上传文件时携带Content-Type
请求头。如果你是前端,你会发现这个请求头是没办法去掉的,除非你自己写一个包。
此时,我们在bucket的跨域访问规则中,将允许 Headers设置为*
就行了。
为什么设置*
而不设置为conent-type
呢? 因为现在设置conent-type
没有任何效果,并且阿里云的文档中心也写明必须要设置成这样,就不要多做纠结了。 -
代码中生成签名url时,设置的过期时间不能低于3600秒,否则会报错;
文件上传
-
文档类型文件上传
- 上传文件时,并不是常用的formData格式。而是直接将读取到的文件二进制数据放到body中。
- 此外,因为文件一般是直接下载的,可将
content-type
指定为application/octet-stream
即可(也可以不传,默认就是这个值)。
-
上传图片
如果图片需要在线预览,那么需要做如下步骤:- 在生成签名url时,必须指定请求头
Content-Type
,如image/png
、image/jpg
等等; - 在使用签名url上传时,必须包含这个请求头;
- 在生成签名url时,必须指定请求头