IBM Cloud Object Storage凭据

时间:2018-02-17 02:44:09

标签: ibm-cloud object-storage ibm-cloud-storage

我正在尝试设置连接到IBM Cloud上的Object Storage服务的Raspberry Pi。在有关对象存储的所有教程中,凭据都采用以下格式:

{
  "apikey": "XXXXXX-_XXXXXXXXXXXXXXXXXX_XXXXXX",
  "endpoints": "https://cos-service.bluemix.net/endpoints",
  "iam_apikey_description": "Auto generated apikey during resource-key 
    operation for Instance - crn:v1:bluemix:public:cloud-object-
    storage:global:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "iam_apikey_name": "auto-generated-apikey-XXXXXXXX-XXXX-XXXX-XXXX-
    XXXXXXXXXXXX",
  "iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Writer",
  "iam_serviceid_crn": "crn:v1:bluemix:public:iam-
identity::XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX::serviceid:ServiceId-
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "resource_instance_id": "crn:v1:bluemix:public:cloud-object-
storage:global:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}

According to here for example

如果给出以下评论:

在IBM Cloud Web界面中,您可以创建或读取现有凭据。如果您的程序在IBM Cloud(Cloudfoundry或Kubernetes)上运行,则凭证也可通过VCAP环境变量

获得。

但是,我没有在IBM Cloud上运行我的Python脚本,而是在向其发送数据的RPi上运行。在我的对象存储服务中,有一个"服务凭证"选项卡,具有以下形式:

{{1}}

那么如何找到所需的凭据,以便我可以使用Python中的SWIFT协议将数据从我的Raspberry Pi发送到我的对象存储服务?

2 个答案:

答案 0 :(得分:1)

您可以使用IBM的S3对象存储协议,而不是我认为不支持的swift。您可以使用python library来轻松实现这一目标

例如连接到cos s3:

import ibm_boto3
from ibm_botocore.client import Config

api_key = 'API_KEY'
service_instance_id = 'RESOURCE_INSTANCE_ID'
auth_endpoint = 'https://iam.bluemix.net/oidc/token'
service_endpoint = 'https://s3-api.us-geo.objectstorage.softlayer.net'

s3 = ibm_boto3.resource('s3',
                      ibm_api_key_id=api_key,
                      ibm_service_instance_id=service_instance_id,
                      ibm_auth_endpoint=auth_endpoint,
                      config=Config(signature_version='oauth'),
                      endpoint_url=service_endpoint)

IBM boto3库非常类似于用于连接到amazon s3对象存储的boto3库。主要区别在于设置我上面显示的初始连接。完成后你可以在网上找到很多使用boto3的例子,这里有一个:

# Upload a new file
data = open('test.jpg', 'rb')
s3.Bucket('my-bucket').put_object(Key='test.jpg', Body=data)

来自:http://boto3.readthedocs.io/en/latest/guide/quickstart.html

答案 1 :(得分:0)

您可能需要查看我在下面列出的问题/答案。基本上您需要的是访问密钥密钥,以便在Python代码中添加以连接到云对象存储帐户。

https://stackoverflow.com/a/48936053/9392933