2016-06-02 11 views
0

Ich versuche, S3 HTML-Uploads arbeiten zu bekommen, ich versuche, den Code-Namen hart zu definieren, anstatt die ${filename} verwenden. Dies wird von meinem API-Server gesteuert, aber wenn ich einen Schlüssel mit Ordnertrennzeichen anmelde und er hochgeladen wird, wird er in seine HTML-Entitäten %2F konvertiert.S3 Post Policy Key nicht zu Ehren Ordner

So habe ich die POST-Politik dafür:

{ 
    "expiration": "2017-01-01T00:00:00Z", 
    "conditions": [ 
     {"bucket": "mybucket"}, 
     {"key": "i/1/1.png"}, 
     {"acl": "public-read"}, 
     {"Content-Type": "image/png"}, 
     ["content-length-range", "0", "1048576"] 
    ] 
} 

das HTML-Formular verwenden, wie so:

<html> 
    <head> 
    <title>S3 POST Form</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    </head> 

    <body> 
    <form action="https://mybucket.s3.amazonaws.com/" method="post" enctype="multipart/form-data"> 
     <input type="hidden" name="key" value="i/1/1.png"> 
     <input type="hidden" name="AWSAccessKeyId" value="AWS_ACCESS_KEY_ID"> 
     <input type="hidden" name="acl" value="public-read"> 
     <input type="hidden" name="policy" value="base64 policy"> 
     <input type="hidden" name="signature" value="signature"> 
     <input type="hidden" name="Content-Type" value="image/png"> 
     <!-- Include any additional input fields here --> 

     File to upload to S3: 
     <input name="file" type="file"> 
     <br> 
     <input type="submit" value="Upload File to S3"> 
    </form> 
    </body> 
</html> 

Wenn die Datei hochgeladen es endet mit dem Dateinamen:

Also Frage ist, wie bekomme ich / zu einem literalen Ordner Trennzeichen?

Antwort

0

Ok, ich bin ein Idiot. Ich habe gelernt, dass zu S3 sowohl %2F als auch / gültige Ordnertrennzeichen sind.