當使用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