Как создать корзину S3, чтобы избежать конфликтов имен - PullRequest
0 голосов
/ 12 марта 2019

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

Как программно обеспечить / создать именакоторые являются глобально уникальными в Java?

Ответы [ 2 ]

1 голос
/ 12 марта 2019

Для меня работает использование идентификатора учетной записи и региона как части имени корзины , например: my-bucket-1234567890-us-east-1.

Это лучше и дает релевантную и детерминированную информацию, чем использование случайной строки.

Конечно, вы также можете добавить несколько случайных:

int i = 0;
String bucketName;
do {
    bucketName = myName + "-" accountId + "-" region + "-" + (++i);
} while (bucketExists(bucketName));

Вы можете использовать GetIdentityCaller , чтобы получить информацию об учетной записи.

Просто будьте в курсеограничение имени группы - 63 символа.

0 голосов
/ 12 марта 2019

Вы должны продолжать пытаться создать корзину, пока она не заработает:

while True:
    generate a UUID
    try to create the bucket called 'foo-UUID'
    if it worked:
        break

Например, UUID может быть 4-символьной частью UUID.randomUUID().Используйте полезный префикс, который относится к вашей компании и сценарию использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...