融合云存储方案-同步凭证生成指南
UPYUN 融合云存储方案功能项里面,会将存储增量文件同步上传到第三方存储厂商,这个时候就需要授权 UPYUN 存储将文件同步到第三方存储厂商。此处的授权其实就是通过 “ 同步凭证 ” 来实现的。同步凭证的生成各存储厂商的方式和方法各不相同。这里推荐如下:阿里云 OSS 可通过 RAM 的方式生成,七牛可手动生成同步凭证。
阿里云 OSS
阿里云提供了 RAM 和 STS 两种权限管理系统,RAM 主要的作用是控制账号系统的权限。通过使用 RAM 可以将在主账号的权限范围内创建子用户,给不同的子用户分配不同的权限从而达到授权管理的目的。STS 是一个安全凭证( Token)的管理系统,用来授予临时的访问权限,这样就可以通过 STS 来完成对于临时用户的访问授权。由于 STS 方式具有临时性,不适用于本方案。故推荐使用 RAM 的方式来生成同步凭证。
阿里云 OSS 同步凭证的生成需要如下几个步骤:
步骤一:通过 阿里云 RAM 管理平台创建用户;
步骤二:自动生成 AccessKey,保存AK信息;
步骤三:添加授权策略(可指定单个 OSS 空间权限);
授权策略配置好之后,通过AK信息里面便可以找到 AccessKeyID 和AccessKeySecret 信息。使用 UPYUN 融合云存储服务指定同步到阿里云 OSS 对应空间,需要在同步凭证处填写 AccessKeyID 和 AccessKeySecret 信息方可,也即我们需要的同步凭证信息。
详情配置,请查看阿里 RAM 使用指南
注意事项
使用 RAM 方式,在授权策略配置阶段,需要对创建的用户或者角色授予相应的策略,具体包括:授权效力、操作方法、资源、限制条件等。
(1)需要授权对指定的空间资源具有公共读权限;
(2)在限制条件方面,授权的时间尽可能的长。否则授权时间失效之后,UPYUN 存储无法进行上传同步操作。
七牛云存储
七牛云存储提供的一对主和从 Access Key 和 Secret Key。如要要将文件上传到七牛对应空间,需要上传凭证方可。为了保证主平台的 Access Key 和 Secret Key 不被泄露,七牛推荐生成上传凭证的方式,也即:UploadToken,当然生成凭证需要用到 Access Key 和 Secret Key。这里七牛的上传凭证也就是融合云存储方案配置项中需要的同步凭证信息。
七牛上传凭证的生成需要如下几个步骤:
步骤一:构造上传策略;
步骤二:将上传策略序列化成为 JSON 格式;
步骤三:对 JSON 编码的上传策略进行 URL 安全的 Base64 编码,得到待签名字符串 encodedPutPolicy;
步骤四:使用SecretKey对上一步生成的待签名字符串计算 HMAC-SHA1 签名;
步骤五:对签名进行 URL 安全的 Base64 编码,得到值:encodedSign;
步骤六:将 AccessKey、encodedSign和encodedPutPolicy 用:连接起来,得到 UploadToken。
详情请参考七牛上传凭证生成指南
注意事项:
在构建七牛上传策略阶段,上传策略是资源上传时附带的一组配置设定。通过这组配置信息,七牛云存储可以了解用户上传的需求:它将上传什么资源,上传到哪个空间,上传结果是回调通知还是使用重定向跳转,是否需要设置反馈信息的内容,以及授权上传的截止时间等等。这里,授权生效时间需要尽可能的长,否则授权时间截止,文件将不能够进行同步。另外,需要指定上传的目标资源空间( Bucket )和资源键名( Key ),并且该空间需要和融合云存储方案配置中指定的空间名需要一致。
名词解释
- 同步凭证:同步凭证也即授权,各存储厂商会用来验证上传请求的合法性,使客户端或者第三方机构具备访问指定资源的能力。可以是 AccessKey,也可以是通过 AccessKey 根据一定的算法生成的加密字符串,七牛云存储称为上传凭证,阿里 OSS 里面称为安全凭证( TOKEN )或者 AK( AccessKey )信息,UPYUN 融合云存储方案中统称为“ 同步凭证 ”。
- 第三方存储:UPYUN 融合云存储方案中所有的第三方存储特指 UPYUN 存储友商,例如:阿里云 OSS、七牛云存储、腾讯云、UCLOUD 等。一期功能里面,融合云存储方案中目前只支持同步增量文件到阿里 OSS 和七牛云存储。