配置存储
存储配置告诉API在哪里返回任务结果。目前,我们同时支持Google云端存储(GS)和Amazon S3(S3)存储分区。
使用Google云端存储设置存储空间
创建Google Cloud Platform项目
如果您没有Google云端平台(GCP)帐户,则需要注册 。只需点击“免费试用”(或“免费试用”)即可完成注册过程。
接下来,您将需要一个项目来存放您的存储桶。可能是在注册时自动创建的,或者您可能只是为了这个目的而想要一个新的独立项目。您可以在Google Cloud文档中找到有关如何管理项目的其他说明。
创建Google云存储分区
现在GCP项目已准备就绪,您可以继续创建新的存储桶 。我们建议至少使用“区域”存储类和“us-east1”位置(这是我们大多数资源所在的位置)。对于本指南,我们将命名我们ricloud-storage
桶ricloud-storage
,但您可能必须选择不同的名称,因为存储桶名称在其主机服务中是全局唯一的。
为API创建服务帐户
在存储桶初始化之后,您需要创建一个服务帐户以授予API访问权限。服务帐户本质上是项目的机器人用户,我们可以授予他们访问新存储桶的权限。继续并按照Google Cloud IAM文档中列出的步骤设置服务帐户。名称的选择取决于您,但在本指南中我们将其称为ricloud-sa
。在创建服务帐户时忽略所有可选字段,我们将在稍后的步骤中设置权限。
如果您选择在流程的最后一步创建密钥,请保持安全,因为这是我们稍后将提供给API的文件。否则,请按照以下步骤创建密钥。
设置存储桶级权限
返回GCP项目的“存储”部分,并按照Google云端存储文档中 “将成员添加到存储桶级策略”下的步骤大纲添加ricloud-sa
服务帐户。为它提供“存储对象创建器”和“存储传统存储桶读取器”角色。
创建配置
此时,服务帐户应完全设置并准备好与API一起使用。
使用ricloud-py创建配置
使用ricloud-py ,您可以使用以下命令创建新的存储配置资源:
> ricloud storage-config create --url "<storage bucket url>" --credentials-path <path to credentials file>
在我们的案例中, storage bucket url
将是gs://ricloud-storage
和path to credentials file
路径只是我们之前创建的服务帐户密钥文件的路径。
使用cURL创建配置
curl -X POST \ https://ricloud-api.reincubate.com/configs/storage \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "url": "gs://ricloud-storage", "credentials": <all contents of the Service Account JSON key file> }'
使用Amazon S3设置存储
创建Amazon AWS账户
如果您没有Amazon AWS账户,则需要注册 。单击“开始使用Amazon S3”以完成设置过程。
创建S3存储桶
按照AWS文档中的这些说明在S3中设置存储桶。选择您喜欢的任何名称,对于本指南,我们将选择ricloud-storage
。我们建议将其放在“美国东部(弗吉尼亚州北部)”中,以便接近API的资源。
为API创建用户
一旦存储桶准备好使用,您将需要设置一个对新存储桶具有有限权限的新用户,以供API使用。这是通过IAM控制台通过这些步骤完成的 。为用户提供一个令人难忘的名称,如ricloud-user
,并确保他们设置为“程序访问”。
我们需要创建一个自定义策略,因为当要求用户授予权限时,没有适合我们需求的默认策略。对于标准结果发布,API需要s3:PutObject
权限。
在AWS策略编辑器中,选择“直接附加现有策略”,单击“创建策略”(这将打开一个新选项卡),然后选择“ JSON”选项卡(将切换到JSON策略编辑器)并将以下内容粘贴到:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": ["arn:aws:s3:::ricloud-storage/*"] }] }
确保将桶名称ricloud-storage
替换为之前命名为存储桶的任何内容。通过保存新策略,将其命名为您想要的任何名称。
返回到用户创建流程并确保用户已将新策略附加到他们。
在用户创建过程结束时,界面将显示“访问密钥ID”和“秘密访问密钥”,您应该保证这些安全。您还可以下载CSV格式的凭据。
创建配置
此时,用户应完全设置并准备好与API一起使用。使用ricloud-py ,您可以使用以下命令创建新的存储配置资源:
> ricloud storage-config create --url "<storage bucket url>" --credentials-path <path to credentials file>
在这种情况下, storage bucket url
将是s3://ricloud-storage
和path to credentials file
路径只是在用户创建过程结束时导出的凭证CSV文件的路径,或者是具有用户凭据信息的JSON文件。 S3凭证格式 。
等效的cURL调用看起来像:
curl -X POST \ https://ricloud-api.reincubate.com/configs/storage \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "url": "s3://ricloud-storage", "credentials": { "user_name": "ricloud-user", "access_key_id": "<user access key ID>", "secret_access_key": "<user secret access key>", } }'