zigg-upload-demo
通用上传demo,通过更换环境变量里的serviceName即可更换不同的底层存储,aliyun或s3存储,提供如下几个接口
接口定义和说明
带acl的签名接口
使用该接口控制上传对象是公开的还是私有的。
由于带签名的post上传使用的key,不同的底层存储会有略微区别,前端需要一个配置项,根据不同的底层存储类型,post上传的时候需要使用不同的key
服务端上传接口
服务端可根据该接口进行流式上传,aliyun可正常通过sdk上传,minio可使用aws-s3 sdk上传。
如果使用obs或者其他的底层存储,需要根据通用的storage定义,自行实现上传
获取下载链接接口
私有链接
公开链接, 调用存储微服务拿到host,api服务根据key自行拼接完整的url
其他注意事项
- aliyun和s3建议使用带acl的签名接口进行前端上传,之前旧的签名进行保留。
- 如果用了s3,底层存储是obs,简单使用的话,可以用旧的签名接口,拿到host,使用put上传。
- s3新的签名接口不兼容obs,需要根据通用的storage实现obs的签名。
- 针对使用了minio的s3,因为minio无法控制单个对象的权限,在使用public签名的时候,建议在minio上配置某个前缀的访问权限为public, 在项目里配置public的访问前缀。