存储配置

更新

存储配置资源描述了API可以存储属于民意调查结果的数据的位置。存储配置中指定的所有位置必须是Google云端存储Amazon S3(AWS)中的 云存储 分区

属性

名称类型描述
id 存储配置ID 资源标识符。
resource string,总是storage_config 资源类型说明符。
organisation 组织ID 资源所属的组织。
type 其中之一: gss3 。这是从url生成的只读属性。
url 表示将发布结果的目标的URL。
credentials 字典包含API用于对存储服务进行身份验证的凭据信息的字典。
state 其中一个: 'new''valid''invalid''deactivated'
date_created 约会时间资源创建时。

类型

gs
Google云端存储存储配置类型。需要服务帐户凭据。
s3
Amazon S3(AWS)存储配置类型。需要AWS用户凭据。

网址

url属性遵循以下格式:

<type>://<bucket name>/<path within bucket>

例如,假设Google云端存储中有一个名为“my-bucket”的存储桶,我们希望API发布到此存储桶中名为“results”的文件夹中,该url将如下所示:

gs://my-bucket/results

证书

Google云端存储凭据

API期望credentials属性是具有以下格式的字典:

{
    "type": "service_account",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "client_id": "<Google Cloud Platform client ID>",
    "token_uri": "https://oauth2.googleapis.com/token",
    "project_id": "<Google Cloud Platform project ID>",
    "private_key": "<Service Account private key>",
    "client_email": "<Service Account ID>.iam.gserviceaccount.com",
    "private_key_id": "<Service Account private key ID>",
    "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/<Service Account ID>.iam.gserviceaccount.com",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs"
}

这通过Google Cloud Platform控制台创建服务帐户密钥时,与输出JSON文件完全匹配。

为了使用导出的JSON文件凭证简化设置存储配置, ricloud-py包含一个简单的cli命令:

ricloud storage-config create --url "gs://<bucket name>" --credentials <path to JSON file>

Amazon S3凭据

API期望credentials属性是具有以下格式的字典:

{
    "user_name": "<aws user name>",
    "access_key_id": "<aws user access key ID>",
    "secret_access_key": "<aws user secret access key>",
}

这可以通过AWS控制台中显示的详细信息手动构建,也可以通过ricloud-py的cli命令从可导出的CSV文件构建

ricloud storage-config create --url "s3://<bucket name>" --credentials <path to CSV file>

状态

new
刚刚创建或最近更新但尚未测试。
valid
已通过验证并准备好使用。组织必须至少具有一个处于此状态的存储配置才能使用。
invalid
验证测试未通过。必须更新或重新测试。
deactivated
被拥有的组织关闭了。

创建POST /configs/storage

创建新的存储配置时,API将尝试通过创建storage_config.test任务来测试它。此任务将使用配置发布一个小测试有效负载,之后可以安全地删除。如果操作成功,则配置的状态设置为valid并且可用于轮询。如果失败,配置的状态将被设置为invalid ,但可以使用测试操作轻松地重新测试。

组织中的第一个有效存储配置将自动设置为组织的默认配置。

请注意,存储配置的创建会在url属性上进行重复数据删除。因此,无法使用相同的url创建两个存储配置但credentials不同。

参数

名称类型描述
url 需要存储桶的存储配置URL。
credentials 需要存储桶的存储配置凭据。

使用cURL

此处,凭据字典的内容来自复制在Google Cloud Service帐户设置期间生成的JSON凭证文件的内容。

curl https://ricloud-api.reincubate.com/configs/storage \
  -X POST \
  -H 'Authorization: Token <your key_token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "url": "gs://my-storage-bucket",
  "credentials": {
      "type": "service_account",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "client_id": "<Google Cloud Platform client ID>",
      "token_uri": "https://oauth2.googleapis.com/token",
      "project_id": "<Google Cloud Platform project ID>",
      "private_key": "<Service Account private key>",
      "client_email": "<Service Account ID>.iam.gserviceaccount.com",
      "private_key_id": "<Service Account private key ID>",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/<Service Account ID>.iam.gserviceaccount.com",
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs"
  }
}'

使用ricloud-py

import json
import ricloud

with open("<path to JSON file>", 'r') as credentials_file:
    credentials = json.load(credentials_file)

storage_config = ricloud.StorageConfig.create(
    url='gs://my-storage-bucket',
    credentials=credentials
)

检索GET /configs/storage/{storage_config ID}

使用cURL

curl https://ricloud-api.reincubate.com/configs/storage/<storage_config ID> \
  -H 'Authorization: Token <your key_token>'

使用ricloud-py

import ricloud

storage_config = ricloud.StorageConfig.retrieve(<storage_config ID>)

列出GET /configs/storage

处于deactivated状态的存储配置默认是隐藏的,只能通过显式过滤列出。

参数

名称类型描述
type 通过支持桶的类型进行过滤。
state 按配置的状态过滤。
date_created 日期时间过滤器按资源创建日期过滤。

使用cURL

curl https://ricloud-api.reincubate.com/configs/storage \
  -H 'Authorization: Token <your key_token>'

使用ricloud-py

import ricloud

storage_configs = ricloud.StorageConfig.list()

更新POST /configs/storage/{storage_config ID}

此操作将创建storage_config.test任务,以检查对配置所做的任何更改的有效性。

参数

名称类型描述
url 更新URL以指向存储桶中的其他存储桶或位置。请注意,通过此操作无法更改存储桶的类型。
credentials 字典更新凭据。
state 仅限newdeactivated

使用cURL

curl https://ricloud-api.reincubate.com/configs/storage/<storage_config ID> \
  -X POST \
  -H 'Authorization: Token <your key_token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "url": "gs://my-storage-bucket/subfolder"
}'

使用ricloud-py

import ricloud

storage_config = ricloud.StorageConfig.update_with_id(
  <storage_config ID>, url="gs://my-storage-bucket/subfolder"
)

# OR

storage_config = ricloud.StorageConfig.retrieve(<storage_config ID>)

storage_config.update(url='gs://my-storage-bucket/subfolder')

删除DELETE /configs/storage/{storage_config ID}

完全从API中删除存储配置。这将删除存储在API中的所有相关凭证信息。

使用cURL

curl https://ricloud-api.reincubate.com/configs/storage/<storage_config ID> \
  -X DELETE \
  -H 'Authorization: Token <your key_token>'

使用ricloud-py

自ricloud-py v3.0.0

import ricloud

ricloud.StorageConfig.delete_with_id(<storage_config ID>)

# OR

storage_config = ricloud.StorageConfig.retrieve(<storage_config ID>)

storage_config.delete()

测试POST /configs/storage/{storage_config ID}/test

此操作允许您重新测试存储配置的有效性。根据测试结果,配置状态将设置为validinvalid

请注意,此操作返回任务资源。

使用cURL

curl https://ricloud-api.reincubate.com/configs/storage/<storage_config ID>/test \
  -H 'Authorization: Token <your key_token>'

使用ricloud-py

import ricloud

test_task = ricloud.StorageConfig.test_with_id(<storage_config ID>)

# OR

storage_config = ricloud.StorageConfig.retrieve(<storage_config ID>)

test_task = storage_config.test()

我们能帮你什么吗?

我们的支持团队在这里提供帮助!

我们的办公时间是格林威治标准时间周一至周五上午9点至下午5点。 时间目前是 3:56 PM的 GMT。

我们力争在一个工作日内答复所有垂询。

转到支持部分 › 联系企业团队 ›
我们的支持团队非常棒

我们可以改进这篇文章吗?

我们喜欢听取用户的意见:为什么不给我们发电子邮件,发表评论或发推文 @reincubate?

© 2008 - 2019 Reincubate Ltd. 保留所有权利。 在英格兰和威尔士注册 #5189175, VAT GB151788978. Reincubate®是注册商标。 隐私权和条款. 我们推荐多因素认证。 在伦敦建立了爱情。