2010-04-01 135 views
0

我试图使用URLFetchService从Google App Engine(使用Java)将文件上传到Amazon S3,但我并没有太多进展。首先我从来没有做过任何REST编程,也没有GAE。如何使用URLFetchService将文件从GAE上传到Amazon S3?

我已经浏览了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作为错误消息。

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

干杯

丰富

+0

你试着让'followRedirects()'返回'false'吗? – sfussenegger 2010-04-01 12:22:49

+0

是的,我试过了,我没有得到任何错误,但是没有任何东西可以放进水桶中。 – Rich 2010-04-01 13:22:06

回答

0

好吧,毕竟,从亚马逊的示例代码本身的工作就好了!

由于GAE/J运行的沙箱,我并不期望Amazon代码能够工作,但我应该先测试它。

相关问题