Как вы используете службу хранения в Bluemix?

Я пытаюсь вставить некоторые данные хранилища в Bluemix, я просмотрел много страниц вики, но не смог прийти к выводу, как действовать дальше. Так может ли кто-нибудь сказать мне, как хранить изображения, файлы в хранилище Bluemix через код любого языка (Java, Node.js)?


person Harsha Reddy    schedule 07.04.2015    source источник
comment
Какой язык вы используете?   -  person Jeff Sloyer    schedule 07.04.2015
comment
Просто проверяю... Решит ли один из ответов вашу проблему? Если нет, то с какой проблемой вы столкнулись?   -  person Jeff Sloyer    schedule 12.04.2015


Ответы (6)


В вашем распоряжении несколько вариантов хранения файлов в вашем приложении. Ни один из них не включает выполнение этого в файловой системе контейнера приложения, поскольку файловое пространство является эфемерным и будет воссоздаваться из дроплета каждый раз, когда создается новый экземпляр вашего приложения.

Вы можете использовать такие сервисы, как MongoLab, Cloudant, Object Storage и Redis, для хранения любых данных больших двоичных объектов.

person jpapejr    schedule 08.04.2015

Если вы используете Bluemix для написания приложения Cloud Foundry, другой вариант — sshfs. Во время запуска вашего приложения вы можете использовать sshfs для создания подключения к удаленному серверу, который смонтирован как локальный каталог. Например, вы можете создать каталог ./data, который указывает на удаленный SSH-сервер и обеспечивает постоянное место хранения для вашего приложения.

Вот сообщение в блоге, объясняющее, как работает эта стратегия, и источник репозиторий, показывающий, что он использовался для размещения блога Wordpress в приложении Cloud Foundry.

person mamacdon    schedule 14.04.2015

Обратите внимание, что, как предлагали другие, существует ряд сервисов для хранения данных объекта. Перейдите в каталог Bluemix [1] и выберите «Управление данными» в левом поле. Каждая из этих служб должна иметь достаточную документацию для начала работы, включая множество примеров приложений и руководств. Просто нажмите на плитку службы, а затем нажмите кнопку «Просмотреть документы», чтобы найти соответствующую документацию.

[1] https://console.ng.bluemix.net/?ace_base=true/#/store/cloudOEPaneId=store

person christo4ferris    schedule 13.04.2015

Ознакомьтесь с https://www.ng.bluemix.net/docs/#services/ObjectStorageV2/index.html#gettingstarted. Службой хранения в Bluemix является OpenStack Swift, работающий в Softlayer. Посетите эту страницу (http://docs.openstack.org/developer/swift/) для документов на Swift.

Вот страница со списком некоторых клиентов для Swift. https://wiki.openstack.org/wiki/SDKs

person Jeff Sloyer    schedule 07.04.2015

Как я ищу Был сервис, который назывался сервисом Object Storage и также был создан IBM. Но на данный момент я не мог видеть его в каталоге Bluemix. Я думаю, они вернули его и опубликуют новый сервис в будущем.

person GokhanYilmaz    schedule 12.12.2015

Имейте в виду, что хранилище объектов в bluemix теперь совместимо с S3. Так, например, вы можете использовать Boto или boto3 (для парней с python). Он будет работать на 100% совместим с API. см. пример здесь: https://ibm-public-cos.github.io/crs-docs/crs-python.html

этот скрипт поможет вам рекурсивно перечислить все объекты во всех сегментах:

import boto3
endpoint = 'https://s3-api.us-geo.objectstorage.softlayer.net'
s3 = boto3.resource('s3', endpoint_url=endpoint)
for bucket in s3.buckets.all():
    print(bucket.name)
    for obj in bucket.objects.all():
        print("  - %s") % obj.key

Если вы хотите указать свои учетные данные, это будет:

import boto3
endpoint = 'https://s3-api.us-geo.objectstorage.softlayer.net'
s3 = boto3.resource('s3', endpoint_url=endpoint, aws_access_key_id=YouRACCessKeyGeneratedOnYouBlueMixDAShBoard, aws_secret_access_key=TheSecretKeyThatCOmesWithYourAccessKey, use_ssl=True)

for bucket in s3.buckets.all():
    print(bucket.name)
    for obj in bucket.objects.all():
        print("  - %s") % obj.key

Если вы хотите создать файл «hello.txt» в новом сегменте. :

import boto3
endpoint = 'https://s3-api.us-geo.objectstorage.softlayer.net'
s3 = boto3.resource('s3', endpoint_url=endpoint, aws_access_key_id=YouRACCessKeyGeneratedOnYouBlueMixDAShBoard, aws_secret_access_key=TheSecretKeyThatCOmesWithYourAccessKey, use_ssl=True)
my_bucket=s3.create_bucket('my-new-bucket')
s3.Object(my_bucket, 'hello.txt').put(Body=b"I'm a test file")

Если вы хотите загрузить файл в новую корзину:

import boto3
endpoint = 'https://s3-api.us-geo.objectstorage.softlayer.net'
s3 = boto3.resource('s3', endpoint_url=endpoint, aws_access_key_id=YouRACCessKeyGeneratedOnYouBlueMixDAShBoard, aws_secret_access_key=TheSecretKeyThatCOmesWithYourAccessKey, use_ssl=True)
my_bucket=s3.create_bucket('my-new-bucket')
timestampstr = str (timestamp)
s3.Bucket(my_bucket).upload_file(<location of yourfile>,<your file name>, ExtraArgs={ "ACL": "public-read", "Metadata": {"METADATA1": "resultat" ,"METADATA2": "1000","gid": "blabala000", "timestamp": timestampstr },},)
person MouIdri    schedule 21.12.2016