читать файлы .pkl из хранилища объектов IBM - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь прочитать файлы «.pkl», хранящиеся в объектном хранилище IBM, в записную книжку IBM cloud / 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')

Функция get_item возвращает пустую строку при попытке прочитать файл '.pkl'. Но с помощью той же функции я могу прочитать файл .txt. Размер файла .pkl составляет 30 МБ, поэтому я не могу загрузить их в облако IBM из-за ограничений по размеру. Может кто-нибудь, пожалуйста, дайте мне знать, как передавать данные хранилища облачных объектов без их загрузки.

...