Подтвердить что ты не робот

Каковы действительные имена ключей S3, к которым можно получить доступ через API S3 rest?

Из документов AWS я понимаю, что:

  • Имена ключей S3 могут быть любым именем UNICODE < 1024 символов
  • При использовании GET OBJ мне нужно URL-адрес кодировать имя ключа для доступа к нему.

Однако эти правила кажутся слишком разрешительными.

Например, если я создаю ключ с именем "../../d", возникает 400 ERROR, когда я пытаюсь получить к нему доступ с API-интерфейсом GET OBJECT. Интересно, что у меня нет проблем с доступом к "../d".

Есть ли документ, определяющий, что является и не является законным?

4b9b3361

Ответ 1

Согласно Документация AWS S3:

Несмотря на то, что вы можете использовать любые символы UTF-8 в имени ключа объекта, следующие рекомендации по наименованию ключевых наименований помогут обеспечить максимальную совместимость с другими приложениями. Каждое приложение может анализировать специальные символы по-разному. Следующие рекомендации помогут вам максимизировать соответствие DNS, веб-безопасным символам, синтаксическим анализаторам XML и другим API.

Ниже вы найдете

Руководство по определению имен ключевых слов из официальная документация AWS S3


Безопасные символы

Следующие обозначения символов обычно безопасны для использования в именах ключей:

  • Буквенно-цифровые символы: 0-9 a-z A-Z
  • Специальные символы: ! - _. * '()

ПРИМЕЧАНИЕ О DELIMITER ( "/" )

Ниже приведены примеры допустимых имен ключевых объектов:

  • 4my-организация

  • my.great_photos-2014/январь/myvacation.jpg

  • видео/2014/День рождения /video 1.wmv

Обратите внимание, что модель данных Amazon S3 является плоской структурой: вы создаете ведро, а ведро хранит объекты. Нет иерархии суббакетов или подпапок; однако вы можете вывести логическую иерархию с использованием префиксов и разделителей ключей, как это делает консоль Amazon S3.

Например, если вы используете Private/taxdocument.pdf в качестве ключа, он создаст личную папку с документом taxdocument.pdf.

Amazon S3 поддерживает ведра и объекты, в Amazon S3 нет иерархии. Однако префиксы и разделители в имени ключа объекта позволяют консоли Amazon S3 и SDK AWS выводить иерархию и вводить концепцию папок.


Персонажи, которым может потребоваться специальная обработка

Следующие символы в имени ключа могут потребовать дополнительной обработки кода и, вероятно, должны быть закодированы в URL или указаны как HEX. Некоторые из них являются непечатаемыми символами, и ваш браузер может не обрабатывать их, что также потребует специальной обработки:

  • Амперсанд ( "&" )
  • Символ "В" ( "@" )
  • Colon ( ":" )
  • Запятая ( "," )
  • Доллар ( "$" )
  • Равно ( "=" )
  • Плюс ( "+" )
  • Вопросительный знак ( "?" )
  • Символы символов ASCII 00-1F hex (0-31 десятичный) и 7F (127 знаков после запятой)
  • Точка с запятой ( ";" )
  • Пространство. Значительные последовательности пространств могут быть потеряны в некоторых целях (особенно в нескольких местах).

Символы, которых следует избегать

Вы должны избегать следующих символов в имени ключа из-за значительной специальной обработки для согласованности во всех приложениях.

  • Обратная косая черта ( "\" )
  • Caret ( "^" )
  • Grave accent/back tick ( "`" )
  • Символ "Больше" ( " > " )
  • Символ "Меньше" ( "<" )
  • Левая фигурная скобка ( "{" )
  • Правая фигурная скобка ( "}" )
  • Прямая квадратная скобка ( "]" )
  • Левая квадратная скобка ( "[" )
  • Символ "фунт" ( "#" )
  • Непечатаемые символы ASCII (128-255 знаков после запятой)
  • Процентный символ ( "%" )
  • Котировочные знаки
  • Тильда ( "~" )
  • Вертикальный бар/труба ( "|" )

Ответ 2

Единственные ограничения, предоставляемые Amazon (см. Технические FAQ):

Какие символы разрешены в ведре или имени объекта?
Ключ представляет собой последовательность символов Юникода, кодировка UTF-8 длиной не более 1024 байтов.

Дополнительные ограничения применимы к ковшикам (как указано в разделе "Правила для имен ковша" в разделе "Ограничения и ограничения ведра" ):

Во всех регионах, кроме региона стандартного стандарта США, имя ковша должно соответствовать следующие правила. Это приводит к имени консоли, совместимому с DNS.

  • Названия ковша должны быть не менее 3 и не более 63 символов
  • Имя ведра должно быть серией из одной или нескольких меток, разделенных точкой (.), где каждая метка:
    • Нужно начинать с строчной буквы или цифры
    • Должен заканчиваться строчной буквой или числом
    • Может содержать строчные буквы, цифры и тире
  • Имена bucket не должны быть отформатированы как IP-адрес (например, 192.168.5.4)

Менее разрешительные ограничения применяются к стандартным регионам США. См. Часто задаваемые вопросы для дополнительных информации и некоторых примеров. Надеюсь, это поможет!