Ошибка IBM Cloud Object Storage при создании корзины - "ошибка создания, имя хранилища неверно".
Я пытаюсь создать две корзины в IBM Cloud Object Storage:
cos = ibm_boto3.resource('s3',
ibm_api_key_id=cos_credentials['apikey'],
ibm_service_instance_id=cos_credentials['resource_instance_id'],
ibm_auth_endpoint=auth_endpoint,
config=Config(signature_version='oauth'),
endpoint_url=service_endpoint)
import datetime
# valid bucket format is ^[a-zA-Z0-9.\-_]{1,255}$
bucket_uid = datetime.datetime.now().isoformat().replace(':', '')
buckets = ['training-data-' + bucket_uid, 'training-results-' + bucket_uid]
for bucket in buckets:
if not cos.Bucket(bucket) in cos.buckets.all():
print('Creating bucket "{}"...'.format(bucket))
try:
cos.create_bucket(Bucket=bucket)
except ibm_boto3.exceptions.ibm_botocore.client.ClientError as e:
print('Error: {}.'.format(e.response['Error']['Message']))
Возвращает ошибку:
Creating bucket "training-data-2018-07-11T090425.347277"...
Error: Container training-data-2018-07-11T090425.347277 creation failed, vault name invalid.
Creating bucket "training-results-2018-07-11T090425.347277"...
Error: Container training-results-2018-07-11T090425.347277 creation failed, vault name invalid.
В чем здесь проблема? Почему название хранилища неверно?
Если я изменю идентификатор bucket_id на "12345", то корзины создаются нормально.
1 ответ
Решение
Длина имени контейнера была проблемой.
Сокращение метки времени было ответом для меня. Обидно, что сообщение об ошибке не было более информативным.