Che cosa sono validi S3 chiave di nomi che possono essere accessibili tramite il S3 API rest?

Da AWS docs, ho capito che:

  • S3 nomi chiave può essere qualsiasi nome UNICODE < 1024 caratteri
  • Quando si utilizza il OTTENERE OBJ, ho bisogno di URL codificare il nome della chiave di accesso.

Tuttavia, queste regole sembrano troppo permissiva.

Per esempio, se faccio una chiave denominata ‘../../d’ 400 ERRORE si verifica quando si tenta di accedere con l’OTTENERE l’OGGETTO API. È interessante notare, non ho nessun problema di accesso ‘../d’.

C’è un documento che specifica che cosa è e non è legale?

InformationsquelleAutor UsAaR33 | 2011-08-19

 

2 Replies
  1. 58

    Secondo AWS S3 documentazione:

    Sebbene sia possibile utilizzare qualsiasi UTF-8 caratteri in un nome chiave dell’oggetto, la seguente chiave di denominazione migliori pratiche che aiutano a garantire la massima compatibilità con altre applicazioni. Ogni applicazione può analizzare i caratteri speciali in modo diverso. Le seguenti linee guida per aiutarvi a massimizzare la conformità con i DNS, web sicuro caratteri, XML parser, e altre Api.

    Qui di seguito troverete l’

    Oggetto Chiave di Denominazione delle Linee guida dal AWS S3 documentazione ufficiale


    Caratteri sicuri

    I seguenti set di caratteri sono generalmente sicuro per l’utilizzo in chiave di nomi:

    • Caratteri alfanumerici: 0-9 a-z a-Z
    • Caratteri speciali: ! – _ . * ‘ ( )

    NOTA CIRCA IL DELIMITATORE (“/“)

    I seguenti sono esempi di oggetti validi nomi chiave:

    • 4my-organizzazione

    • my.great_photos-2014/jan/myvacation.jpg

    • video/2014/compleanno/video1.wmv

    Notare che Amazon S3 modello di dati è una struttura piana: si crea un secchio, secchio negozi di oggetti. Non c’è nessuna gerarchia di subbuckets o sottocartelle; tuttavia, è possibile dedurre gerarchia logica utilizzando keyname prefissi e delimitatori come Amazon S3 console fa.

    e.g se si utilizza Privato/taxdocument.pdf come una chiave, creare Privato cartella, con taxdocument.pdf in esso.

    Amazon S3 supporta i secchi e gli oggetti, non c’è gerarchia in Amazon S3. Tuttavia, i prefissi e i delimitatori di un oggetto chiave nome, consente di Amazon S3 console e AWS Sdk per dedurre gerarchia e introdurre il concetto di cartelle.


    Personaggi Che Potrebbero Richiedono Una Gestione Speciale

    I seguenti caratteri in un nome di chiave possono richiedere ulteriori di gestione del codice e sarà probabilmente bisogno di essere codificato in URL di riferimento o ESADECIMALE. Alcuni di questi sono caratteri non stampabili e il tuo browser potrebbe non gestire loro, che richiedono una gestione speciale:

    • E commerciale (“&”)
    • ‘A’ simbolo (“@”)
    • Due punti (“:”)
    • Virgola (“,”)
    • Dollaro (“$”)
    • Di uguale (“=”)
    • Più (“+”)
    • Punto interrogativo (“?”)
    • Intervalli di caratteri ASCII 00–1F hex (0-31 decimale) e 7F (127 decimale.)
    • Punto e virgola (“;”)
    • Spazio Significativo le sequenze di spazi può essere perso in alcuni usi (in particolare gli spazi multipli)

    Caratteri per Evitare

    Si dovrebbe evitare i seguenti caratteri in un nome di chiave a causa di notevoli gestione speciale per la coerenza di tutte le applicazioni.

    • Backslash (“\”)
    • Accento circonflesso (“^”)
    • Accento Grave /retro tick (“`”)
    • “Maggiore Di “simbolo”>”)
    • ‘Meno Di’ simbolo (“<“)
    • Sinistra parentesi graffa (“{“)
    • Parentesi graffa di destra (“}”)
    • Parentesi quadra destra (“]”)
    • Sinistra parentesi quadre (“[“)
    • ‘Libra’ il carattere (“#”)
    • Caratteri ASCII Non stampabili (128-255 decimale caratteri)
    • Carattere di percentuale (“%”)
    • Virgolette
    • Tilde (“~”)
    • Barra verticale /pipe (“|”)
    • Questa è una spiegazione molto bene. Vi ringrazio molto!
  2. 13

    I soli limiti previsti da Amazon è (come trovato sul loro FAQ tecniche):

    Cosa sono ammessi caratteri in un secchio o un nome di oggetto?

    Una chiave è una sequenza di caratteri Unicode cui la codifica UTF-8 è a più di 1024 byte.

    Ulteriori restrizioni per Secchi (come si trova il Regole per il Secchio di Denominazione sezione del loro Secchio Restrizioni e Limitazioni FAQ):

    In tutte le regioni, tranne che per gli Standard USA regione un secchio nome deve rispettare il
    seguenti regole. Queste si traducono in un DNS conforme secchio nome.

    • Secchio nomi devono essere almeno 3 e non più di 63 caratteri
    • Secchio nome deve essere una serie di uno o più etichette separati da un punto (.), dove ogni etichetta:
      • Deve iniziare con una lettera minuscola o un numero
      • Deve terminare con una lettera minuscola o un numero
      • Può contenere lettere minuscole, numeri e trattini
    • Secchio nomi non deve essere formattato come un indirizzo IP (ad esempio, 192.168.5.4)

    Meno permissiva restrizioni si applicano agli standard STATUNITENSI regione. Si prega di vedere le Faq per ulteriori
    informazioni e alcuni esempi. Speranza che aiuta!

    • Sono preoccupato per i migranti privi di restrizioni sull’oggetto (chiave) nomi. Amazon sostiene unicode opere, ma, chiaramente, ‘../../parola’ non. Mi chiedo che altro non è supportato…
    • Sembra che la risposta è “No, non c’è un documento”. Vorrei raccomandare di chiedere la tua domanda sul AWS forum. Su un lato nota, qui è una simile domanda (e risposta 🙂 ) : stackoverflow.com/questions/3146380/…
    • sarebbe bello avere un feedback perché pensi che la risposta non affrontare la questione. O, meglio ancora, per modificare la risposta.
    • docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html
    • [ vi darà il dolore (come ho passato le ultime 2 ore di risoluzione dei problemi)

Lascia un commento