【发布时间】:2011-11-17 08:31:49
【问题描述】:
找不到一些示例来展示我如何使用 Java 允许用户将图像上传到 Amazon S3。
流程是:
用户使用带有文件输入表单元素的 HTML 表单。
此表单将所选图像提交给 Servlet。
此 Servlet 处理图像并将其存储在 S3 中。
任何人都知道概述示例代码以执行此操作的任何好的链接/教程吗?
【问题讨论】:
找不到一些示例来展示我如何使用 Java 允许用户将图像上传到 Amazon S3。
流程是:
用户使用带有文件输入表单元素的 HTML 表单。
此表单将所选图像提交给 Servlet。
此 Servlet 处理图像并将其存储在 S3 中。
任何人都知道概述示例代码以执行此操作的任何好的链接/教程吗?
【问题讨论】:
第三点:
教程很简单。这是我正在使用的 sn-p:
S3Object fileObject = new S3Object(path);
fileObject.setDataInputStream(is);
s3service.putObject(bucketName, fileObject);
对于前两点——look at this question
【讨论】:
Integer.parseInt(request.getHeader("Content-Length") 应该给你这个
建议您使用html amazon API 来执行此操作。流媒体有点复杂,在大多数情况下您不需要它。
【讨论】:
您还可以使用简单的表单将文件上传到 S3 存储桶。看这个例子http://aws.amazon.com/articles/1434
示例形式:
<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>
【讨论】: