如何使用URLFetchService将文件从GAE上传到Amazon S3?

时间:2010-04-01 10:55:09

标签: java google-app-engine rest amazon-s3

我正在尝试使用URLFetchService从Google App Engine(使用Java)将文件上传到Amazon S3,但我没有走得太远。首先,我从未做过任何REST编程,也没有GAE。

我查看了S3的文档,并提出了以下代码。我是沿着正确的道路前进的吗?

final URLFetchService urlFetchService = URLFetchServiceFactory.getURLFetchService();
final URL url = new URL("http", AWS_BUCKET+".s3.amazonaws.com/myFile.jpg", "");
final HTTPRequest request = new HTTPRequest(url, HTTPMethod.PUT, followRedirects());
request.addHeader(new HTTPHeader("Content-Type", contentType));
request.addHeader(new HTTPHeader("Content-Length", Integer.toString(pictureBytes.length)));
request.addHeader(new HTTPHeader("Expect", "100-continue"));
request.addHeader(new HTTPHeader("Authorization", "AWS "+AWS_ACCESS_KEY+":"+AWS_SECRET_KEY));
request.setPayload(pictureBytes);
urlFetchService.fetch(request);

当我运行上面的代码时,我得到Entity enclosing requests cannot be redirected without user intervention作为错误消息。

提前感谢任何提示/提示/指针/网址/解决方案:)

干杯

1 个答案:

答案 0 :(得分:0)

好的,毕竟,亚马逊自己的示例代码工作得很好!

由于GAE / J运行的沙箱,我没想到亚马逊代码能够正常运行,但我应该先测试它。