配置S3存储功能
通过应用与Amazon S3(Amazon Simple Storage Service)对接,实现文件存储功能。
背景信息
首先,您需要清楚以下概念:
- Amazon S3(Amazon Simple Storage Service):是一种互联网存储解决方案。Amazon S3提供了一个简单 Web服务接口,用于随时在Web上的任何位置存储和检索任何数量的数据。此服务让所有开发人员都能访问同一个具备高扩展性、可靠性、安全性和快速价廉的数据存储基础设施, Amazon用它来运行其全球的网站网络。
存储桶(Bucket):存储桶是Amazon S3 中用于存储对象的容器。每个对象都存储在一个存储桶中。例如,如果名为 photos/puppy.jpg 的对象存储在 johnsmith 存储桶中,则可使用 URL 对该对象进行寻址。
http://johnsmith.s3.amazonaws.com/photos/puppy.jpg
对象(Object):对象是Amazon S3中存储的实体。
- 区域(Region):您可以选择一个地理区域,以提供Amazon S3 存储您创建的存储桶。例如“us-east-1”表示美国东部(弗吉尼亚北部)。
- AWS (Amazon Web Service)账户:所有AWS账户都具有根用户凭证 (即账户所有者凭证)。这些凭证允许完全访问账户中的所有资源。为了保证AWS资源的安全性,一般AWS账户创建多个IAM用户并赋予IAM用户权限来访问AWS资源。
- IAM(Identity and Access Management)用户:AWS账户可以创建多个IAM用户,通过为IAM用户创建唯一的凭证来定义每个IAM用户具有哪些资源的访问权限。例如,如果您在您的 AWS账户中创建一个IAM用户并向该用户授予创建存储桶的权限,则该IAM用户可以创建存储桶。但是IAM用户不拥有存储桶;用户所属的AWS账户拥有存储桶。用户需要资源拥有者提供其他权限来执行存储桶的任何其他操作。
以上概念的关系如图1所示。
图 1 概念关系图
说明:
概念来源于Amazon相关资料,若需获取更多信息,请查阅https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html。
场景描述
向Amazon S3存储桶“test”中存储对象。
前提条件
请获取如下关键信息:
- 已获取AWS账户分配给IAM用户的访问密钥 ID(Access key ID)和秘密访问密钥(Secret access key)。
已获取Amazon S3服务的区域ID。
获取方法如下:
- 在浏览器地址栏输入https://console.aws.amazon.com/console/home,进入AWS控制台主页登录页面。
输入AWS账户名、IAM用户和密码进行登录。
登录后,如图2所示,地址栏网址末尾“us-east-1”即为区域ID。单击“S3”可进入Amazon S3服务界面。
图 2 AWS控制台首页
配置Connector操作步骤
在APP开发界面左侧列表单击,选择“连接 > 连接器”。
在Connectors配置界面中单击“S3”图标,打开Connector列表。
- 单击“新建”。
输入与Amazon S3对接的参数,单击“下一步”。
图 4 新建Connector
表 1 新建Connector页面参数说明
参数
|
说明
|
名称
|
Connector的名称。在Flow中选用Connector时的一个标识。
示例: s3connector
|
访问密钥
|
AWS账户分配给IAM用户的访问密钥 ID(Access key ID)。
|
密钥
|
AWS账户分配给IAM用户的秘密访问密钥(Secret access key)。
|
账号地区
|
Amazon S3服务的区域ID。获取方法请参见前提条件中的 已获取Amazon S3服务的区域ID。
|
内容分发网络
|
CDN服务器的地址。通过该配置,您后续访问上传的静态资源时,可不用登录S3,直接通过CDN访问到静态资源。
可选配置。
|
描述
|
Connector的描述信息。
|
在“桶”区域选择存储桶,用于存储对象,可选择多个桶,这里选择桶“test”,单击“保存”。
如图5所示,保存后出现该Connector详情页面。单击可编辑该Connector。
图 5 该Connector详情页面
(可选)创建Connector后,您可进行简单的测试,测试是否能在存储桶上存储对象。
说明:
该测试只能上传小于1MB字节的对象。
- 在该Connector详情页面单击存储桶所在行的。
单击“单击上传”,选择对象文件,单击“上传”。
图 6 选择对象
单击上传好的文件名,进行下载。打开下载的对象存储文件,查看与上传的对象存储文件是否一致。
调用Connector
您可以在业务Flow中调用Connector实现与Amazon S3的对接,这里以新建一个Flow实现对象存储为例进行举例说明。
- 鼠标放在APP下的Logic文件夹旁会出现加号,单击加号,选择“流”。
- 系统弹出“添加流程”的对话框,选择“创建一个新的流”,填入Flow名称等信息,单击“添加”。
在Flow编辑器页面左侧选择“连接器 > AWS > S3”,拖拽“S3”图标至画布中,弹出“S3”配置窗口。
“S3”是系统预置的与Amazon S3对接的存储接口。
在“基本信息”页面进行配置。
参数说明如下。
- 标签:该图元的展示名。
- 名称:该图元的唯一标识,不能和其他图元相同。
- 连接器:该Flow使用的Connector的名称。选择刚刚创建的“s3connector”。
设置调用“S3”参数。
图 7 配置“S3”
表 2 “S3”参数说明
参数
|
说明
|
动作
|
系统预置如下两个动作。
- View Object:系统预置的查看存储对象接口。
- Put Object:是系统预置的存储对象接口,用于将系统的对象存储到Amazon S3的存储桶中。
|
输入参数
|
输入参数。为定义Connector时设置的自定义参数。取值说明如下:
- “目标”取值为“object”时:请在“源”里配置对象名称。
- “目标”取值为“data”时:请在“源”里配置对象具体数据。
- “目标”取值为“bucket”时:请在“源”里配置桶。
单击“新增行”可进行添加。
|
输出参数
|
输出参数。“源”从下拉框选择为“result”,“目标”用于接收支付结果,必须定义一个空实例的结构变量来进行接收。
|
连接开始和S3图元。
单击Flow编辑器空白区域,选择,设置Flow出参。将S3图元的输出参数作为整个Flow的输出参数。
单击,保存Flow。
- 单击,运行Flow。
在Amazon S3控制台单击存储桶名称“test”,查看存储桶中存储的对象列表。
如图8所示,表示对象已存储成功。
图 8 “test”存储桶中对象列表