当使用getData()
方法尝试下载ParseFile时出现以下异常。解析Android无法下载永久移动的图像
com.parse.ParseException: Download from S3 failed. Moved Permanently
at com.parse.ParseAWSRequest.onResponseAsync(ParseAWSRequest.java:43)
at com.parse.ParseRequest$3.then(ParseRequest.java:137)
at com.parse.ParseRequest$3.then(ParseRequest.java:133)
at bolts.Task$15.run(Task.java:917)
at bolts.BoltsExecutors$ImmediateExecutor.execute(BoltsExecutors.java:105)
at bolts.Task.completeAfterTask(Task.java:908)
at bolts.Task.continueWithTask(Task.java:715)
at bolts.Task.continueWithTask(Task.java:726)
at bolts.Task$13.then(Task.java:818)
at bolts.Task$13.then(Task.java:806)
at bolts.Task$15.run(Task.java:917)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
的ParseFile是被上载,然后放入一个的parseObject JPG称为ImageObject
。 ImageObject
还有其他几个参数,如正确上传和下载的标题,宽度和高度。图像本身通过仪表板确认正确上传。只有在下载期间,我收到了上述例外。
这是我上传的代码
file.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
Log.d(tag, "Successfully uploaded image file");
ParseObject image = new ParseObject("imageObject"); //Create new Image-ParseObject and set values
image.put("author", ParseUser.getCurrentUser());
image.put("imageFile", file);
image.put("caption", caption);
image.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if(e==null){
Log.d(tag, "Successfully saved image file to object");
}else{
Log.d(tag, "Failed to save image file to object", e);
}
}
});
} else {
Log.d(tag, "Failed to save image", e);
}
}
我下载的代码是非常ParseFile.getFile()
我已经检索到后,所有的ImageObjects
通过ParseQuery。
我跟着ParseAWSRequest.java的43号线,我发现这一点,
if (statusCode >= 200 && statusCode < 300 || statusCode == 304) {
// OK
} else {
String action = method == ParseHttpRequest.Method.GET ? "Download from" : "Upload to";
return Task.forError(new ParseException(ParseException.CONNECTION_FAILED, String.format(
"%s S3 failed. %s", action, response.getReasonPhrase())));
}
这与“永久删除”点到我的nginx的反向代理,这在重定向到HTTPS返回一个301码。不幸的是,我不确定从这里出发。
其他信息, 我已经阻止端口80(http)在防火墙中进行测试,似乎下载解析-Android-sdk正尝试从http下载。这很奇怪,因为我已经用“https”指定了我的分析服务器链接,并且上传工作正常。我可以在我的服务器上使用仪表板查看上传的图像。
使用,
- 解析服务器2.2.13
- 解析Android SDK中1.13.1
- 解析仪表盘1.0.14