技术研究之阿里云OSS
我在开发大疆服务的时候,用到了阿里云的OSS服务,其中的一些参数刚开始的时候不是很理解,后来花了很长的时间去理解这个东西的。其实不应该算事在
1.创建Bucket
(1)创建Bucket
(4)获取其他的信息
其他的信息,比如就是 accesskey 和 secretKey,可以通过 账号,访问控制页面进行获取。
1 | oss: |
【1】.springboot整合阿里云oss实现简单的增删改查
【2】.Java授权访问 使用
【3】.在URL中包含签名 可以使用 generatePresignedUrl 构造带签名的url.
【4】.通过Bucket Policy授权访问OSS
【5】.访问域名和数据中心
问题
(1)The Min/Max value of DurationSeconds is 15min/1hr
角色扮演时指定的过期时间无效,即AssumeRoleRequest.setDurationSeconds参数无效。角色扮演时可以指定过期时间,单位为秒,有效时间是900~3600秒,如assumeRoleRequest.setDurationSeconds(60 L * 20),20分钟内有效。
我在配置里面写了 360 秒,实际上是不对的。
2.访问控制
访问阿里云的相关服务,需要一个 AccessKey 和一个 AccessSercet 这个东西,在新建用户之后,可以获取到。新建用户之后,还需要授权用户的访问权限,另外一种就是通过角色去控制访问权限。
- 用户
这里就是创建一个 AccessKey 访问控制的RAM,这个地方要授权的。基本上就是创建一个用户,然后给这个用户授权,获取到这个用的 AccessKey 和 AccessScertet。
- 角色
RAM虚拟角色,这个应该是最多人懵逼的,也就是RoleArn 参数的主体,简单说这个角色是阿里云STS授权方式主体,一般用于前端交互,通过token 的时效性保证在前端代码泄露情况下主体也是安全的,这个主体是通过RoleArn 参数鉴权。这个ARN的作用可以通过参考文章2说明的部分得到具体的作用,这个我刚开始找不到到底在哪里进行配置。后来还是在RAM访问控制,新建了一个角色,在角色的基本信息里面,找到了这个ARN。
1 | // RoleArn 需要在 RAM 控制台上获取 |
1.STS 阿里云 OSS授权
2.创建RAM角色并进行STS授权 由于RAM用户的权限启用后一直有效,一旦AccessKey泄露,可能会导致安全风险。建议您使用STS临时授权,通过自定义过期时间,并指定相对复杂的策略对不同的RAM角色进行限制,采取权限最小化原则,提高服务访问的安全性。步骤一:创建RAM用户并授予AssumeRole接口的调用权限;步骤二:创建RAM角色并授予IMS操作权限。步骤三:使用创建的RAM用户调用AssumeRole接口获取临时AccessKey
3.通过GDB控制台授权 这个是通过GDB访问OSS的方法。
4.通过RAM控制台授权 从对象存储OSS的Bucket中导入数据时,您需要具有访问该Bucket的权限。本文介绍通过在RAM(访问控制)控制台创建策略进行授权并创建AccessKey的方法。
5.如何查看RAM角色的ARN?
6.AssumeRole - 获取扮演角色的临时身份凭证
7.RAM角色和STS Token常见问题 AssumeRole接口允许谁调用?AssumeRole接口用于获取一个扮演RAM角色的STS Token,该接口仅允许RAM用户或RAM角色调用,不允许阿里云账号(主账号)调用。RAM角色有几种?分别可以被谁扮演?如何查看RAM角色的ARN?STS Token的权限限制是什么?STS服务调用次数是否有上限?STS Token的有效期是多久?STS获取的多个Token是否同时有效?STS Token发生泄露时如何处理?
8.阿里云RAM访问控制相关参数解析(RoleArn参数获取)
3.rclone同步到minio
详情请查看软件研究之Rclone
4.ossutil
ossutil是阿里云官方推出的一个oss管理工具,可以方便的下载和上传文件。 其中 accessKeySecret 和 accessKeyID 为用户的key,ramRoleArn在角色里面有。
1 | # 下载ossutil, 解压之后运行,按照相应的 提示进行配置,选择语言,配置 key, |
1 | # 沿用原文件名保存文件 cloud_url:oss文件路径 file_url:本地文件路径 |
region must be set in sign version 4
【1】.安装ossutil 这里有通过命令进行安装的方法
【2】.配置ossutil 配置ossutil的方法
【3】.config(创建配置文件) 该命令有交互式和非交互式两种用法。交互式用法允许您在使用命令前,通过配置文件完成相关配置项。命令使用过程中,ossutil将直接读取配置文件中的配置。而非交互式用法则需要您在使用命令时,通过选项来指定需要的配置项。相比非交互式用法,交互式用法具有更高的安全性。
【4】.cp(下载文件)
【5】.OSS访问域名、数据中心、开放端口
【6】.命令行工具ossutil快速入门
5.定时任务
为了从阿里云oss将数据传入内网 minio 中,我编写了相关的定时启动脚本,每天五点半到早上7点半,将数据使用 rclone 拷贝到内网minio中。
(1)后台启动
1 | # 后台运行 |
(2)启动脚本 start.sh
1 |
|
(3)关闭脚本 stop.sh
1 |
|
(4)创建定时任务
1 | # 打开定时任务配置文件 |
(5)检查服务是否存在,不存在则启动
1 |
|
【1】.使用 rclone 每天定时备份typecho博客网站内容及mysql数据库到 Google Drive/Onedrive等网盘
【2】.rclone食用手册,快速上手自动备份,实现Google Drive同步网站的备份目录 实现自动同步,首先crontab -e,然后将命令加入最后一行(每周一的8点30进行一次同步),30 8 * * 1 rclone sync /www/backup gdrive:backup
【3】.Shell单条指令查找并杀死进程
【4】.shell——查找指定进程并且关闭 这是相关的参考示例,指定名称关闭进程
【5】.Shell 检查服务进程是否存在,如果不存在则启动