从IBM对象存储中读取.pkl文件

时间:2019-03-07 11:07:32

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

我正在尝试使用下面提供的功能将存储在IBM对象存储中的'.pkl'文件读入IBM云/ jupyter笔记本中。我正在使用python 2.7。

from ibm_botocore.client import Config

import ibm_boto3

COS_ENDPOINT = "https://s3.private.us.cloud-object- 
torage.appdomain.cloud" 
COS_API_KEY_ID = "xxxxxxxxxxxx"
COS_AUTH_ENDPOINT = "https://iam.ng.bluemix.net/oidc/token"
COS_RESOURCE_CRN = "xxxxxxxxxxxxxxxxx"
COS_BUCKET_LOCATION = "us-geo"

# Create resource
cos = ibm_boto3.resource("s3",
    ibm_api_key_id=COS_API_KEY_ID,
    ibm_service_instance_id=COS_RESOURCE_CRN,
    ibm_auth_endpoint=COS_AUTH_ENDPOINT,
    config=Config(signature_version="oauth"),
    endpoint_url=COS_ENDPOINT
)

def get_item(bucket_name, item_name):
    print("Retrieving item from bucket: {0}, key: 
 {1}".format(bucket_name, item_name))
    try:
        file = cos.Object(bucket_name, item_name).get()
        print("File Contents: {0}".format(file["Body"].read()))
    except ClientError as be:
        print("CLIENT ERROR: {0}\n".format(be))
    except Exception as e:
        print("Unable to retrieve file contents: {0}".format(e))

get_item('bucket_name', 'item_name')

当尝试读取'.pkl'文件时,函数get_item返回空字符串。但是使用相同的功能,我可以读取“ .txt”文件。 “ .pkl”文件的大小为30 MB,因此由于大小限制,我无法将它们下载到IBM云中。有人可以让我知道如何在不下载的情况下流式传输云对象存储数据。

0 个答案:

没有答案