Vous pouvez également utiliser un formulaire simple pour télécharger le fichier dans le compartiment S3. Regardez cet exemple http://aws.amazon.com/articles/1434
forme Exemple:
<html>
<head>
<title>S3 POST Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<form action="https://s3-bucket.s3.amazonaws.com/" method="post" enctype="multipart/form-data">
<input type="hidden" name="key" value="uploads/${filename}">
<input type="hidden" name="AWSAccessKeyId" value="YOUR_AWS_ACCESS_KEY">
<input type="hidden" name="acl" value="private">
<input type="hidden" name="success_action_redirect" value="http://localhost/">
<input type="hidden" name="policy" value="YOUR_POLICY_DOCUMENT_BASE64_ENCODED">
<input type="hidden" name="signature" value="YOUR_CALCULATED_SIGNATURE">
<input type="hidden" name="Content-Type" value="image/jpeg">
<!-- 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>
Merci! J'ai fait quelques progrès et je suis au point où j'essaie de mettre l'objet en S3. La documentation dit "Si vos données ne sont pas un fichier ou une chaîne, vous pouvez utiliser n'importe quel flux d'entrée en tant que source de données, mais vous devez définir manuellement la longueur du contenu." J'attrape l'image téléchargée en tant que InputStream. Je ne suis pas sûr comment extraire le Content-Length pour le définir ici: s3FileObject.setContentLength (contentLength); Je l'ai essayé de convertir le InputStream en chaîne, pour ensuite saisir la lenth de contenu, mais l'image téléchargée résultant est endommagé. Des pensées sur comment je peux attraper le contenu-lenth? – Stamford
à clarifier les choses, il ne fait travailler sans réglage de la longueur de contenu, me donne juste un avertissement. Donc, mieux compris à comprendre comment le spécifier: WARN [org.jets3t.service.impl.rest.httpclient.RestStorageService: 1610] Content-Length du flux de données non défini, détermine automatiquement la longueur des données en mémoire – Stamford
'Integer.parseInt (request.getHeader ("Content-Length") 'devrait vous donner – Bozho