简介
阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。
使用流程
名词解释
Endpoint(访问域名)
AccessKeyId(阿里云API的密钥)
AccessKeySecret (与AccessKeyId对应)
Bucket(存储空间)
OSS权限控制
- 账号级别权限
- 阿里云账号AccessKey
- RAM子账号AccessKey(避免泄露主账号的AccessKey,建议使用)
- STS账号AccessKey
- Bucket级别权限
- public-read-write 公共读写
- public-read 公共读,私有写
- private 私有读写
- Object级别权限(优先级高于Bucket)
- public-read-write 公共读写
- public-read 公共读,私有写
- private 私有读写
- default 默认权限 继承bucket
- public-read-write 公共读写
个人总结
- 如果是私有权限的文件,客户端该如何访问?
1.在Header中包含签名
2.在URL中包含签名
注:如果多次请求该方法,每次返回的url都不一样
例子:https://tts-oss-public.oss-cn-shenzhen.aliyuncs.com/test/f3a4a566197744a880383135bee0fccd1234.png?Expires=1524566570&OSSAccessKeyId=TMP.AQFXJvAkVfBaSwWi5a68tvgbrUVyzOH8_6w-YiOdGDYGxUhaBRowDx0ospaoAAAwLAIUNR8PTGbizu3ii_gFls2XEjyAdxgCFCO_85hsDtcnuzhKfXyb3ob4knFV&Signature=tb7w7K%2F%2FiKA4fYPHGieDOh99zUk%3D
- OSS文件URL构成解释?
https://tts-oss-public.oss-cn-shenzhen.aliyuncs.com/test/123.png
tts-oss-public:bucket名称,自定义,保存后不可更改,全局唯一
oss-cn-shenzhen.aliyuncs.com:地域域名,在创建 Bucket 的时候指定的,指定之后不允许更改
test:文件夹名,自定义,如果创建时带有 / 会自动创建
123.png:文件名
- bucket设置为私有,能否防止恶意下载?
不能防止,一但对应资源的签名url对外暴露,在签名url有效期内就可以通过签名url下载对应的资源;
- bucket私有,获取到的资源链接是否具有时效性?
有时效性,一但过期就不可被访问
- 获取到的资源链接是否可以永久有效?
将bucket改为公共读/公共读写,获取到的object链接一般都是永久有效的,但是如果bucket私有要获取永久有效的链接,
不支持也没意义(私有本身就是为了保证数据安全性,一定期限内可访问,一定程度上防止恶意下载,链接有效时间过长也就失去了对应的意义)。
- 补充
OSSClient是OSS服务的Java客户端,它为调用者提供一系列与OSS进行交互的接口,用于管理、操作存储空间(Bucket)和文件(Object)等OSS资源。
-
-
// 创建OSSClient实例 OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
-
同一个存储空间的内部是扁平的,没有文件系统的目录等概念,所有的对象都直接隶属于其对应的存储空间。