【发布时间】:2015-09-05 12:58:38
【问题描述】:
我正在尝试使用 Amazon 的 Java API 将文件上传到 Amazon S3 存储。代码是
Byte[] b = data.getBytes();
InputStream stream = new ByteArrayInputStream(b);
//InputStream stream = new FileInputStream(new File("D:/samples/test.txt"));
AWSCredentials credentials = new BasicAWSCredentials("<key>", "<key1>");
AmazonS3 s3client = new AmazonS3Client(credentials);
s3client.putObject(new PutObjectRequest("myBucket",name,stream, new ObjectMetadata()));
当我在注释前两行并取消注释第三行之后运行代码时,即stream 是FileoutputStream,文件被正确上传。但是当data是base64编码的String,也就是图片数据时,文件上传了,但是图片损坏了。
亚马逊文档说我需要创建并附加一个 POST 策略和签名才能使其正常工作。我怎么能在java中做到这一点?我没有使用html 表单进行上传。
【问题讨论】:
-
非常好的问题+1
-
问得好,有没有运气好?
标签: java amazon-web-services amazon-s3