2010-06-30 6 views
16

Ich habe kürzlich herausgefunden, dass Sie die Verzeichnisstruktur auf S3 fälschen können, indem Sie Schrägstriche in Ihre Dateinamen einfügen. Das hat mich zum Nachdenken gebracht: Gibt es irgendwelche Einschränkungen für Objekt-IDs? Ich bin sicher, dass es welche geben muss. Länge? Nullzeichen (\ 0)? Arkanes Zeug wie ungültige UTF-8-Zeichen?Welche Einschränkungen gelten für Objekt-IDs in Amazon S3?

Ich bin mir sicher, dass es einige Einschränkungen geben muss, aber ich kann sie nirgendwo in der Dokumentation finden.

+2

Gute Frage; Benennungsregeln für * Buckets * scheinen verfügbar zu sein (in Erste Schritte und Benutzerhandbuch), nicht jedoch für Objekte. – Jonik

+2

Dies wurde vor 4 Jahren gefragt, und ist immer noch das Top-Google-Ergebnis, wtf amazon? –

Antwort

21

Per der technical documentation:

Ein Schlüssel ist eine Folge von Unicode-Zeichen, deren UTF-8-Codierung ist bei den meisten 1024 Bytes lang.

Buckets Namen haben additional restrictions:

Wir empfehlen, dass alle Eimer Namen mit DNS-Namenskonventionen entsprechen.

Die Regeln für DNS-kompatible Eimer Namen sind:

  • Bucket-Name 3 mindestens sein muss und nicht mehr als 63 Zeichen lang sein.
  • Bucket-Namen müssen eine Reihe von einem oder mehreren Labels sein. Benachbarte Beschriftungen sind durch einen einzelnen Punkt (.) Getrennt. Bucket-Namen können Kleinbuchstaben, Zahlen und Bindestriche enthalten. Jedes Etikett muss mit einem Kleinbuchstaben oder einer Zahl beginnen und enden.
  • Bucket-Namen dürfen nicht als IP-Adresse (z. B. 192.168.5.4) formatiert sein.

In diesem Moment DNS konforme Namen in der Region US Standard nicht durchgesetzt werden, aber Amazon auf, dass sie bewegt.

+0

Ich schlage auch vor, Zeichen zu vermeiden, die für xml1.0 nicht entsprechen. Dies verursacht verschiedene Bugs mit Boto und wahrscheinlich anderen Implementierungen. Siehe https://github.com/boto/boto/issues/1459 – omribahumi