2016-06-22 1 views
0

getData()メソッドを使用してParseFileをダウンロードしようとすると、次の例外が発生します。パースアンドロイドは、永久に移動したエラーで画像をダウンロードできません

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) 

構文解析ファイルがアップロードされ、その後、ImageObjectと呼ばれるのparseObjectに入れられるJPGです。 ImageObjectには、キャプション、幅、高さなど、アップロードとダウンロードが正しく行われるようないくつかのパラメータがあります。ダッシュボードで確認されたとおりに画像自体が正しくアップロードされます。ダウンロード中のみ上記の例外が発生します。

これは私がParseQueryを介してすべてのImageObjectsを取得した後、私のダウンロードコードはかなりParseFile.getFile()である私のアップロードのコード

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); 
     } 
    } 

です。

IはParseAWSRequest.javaのライン43に従い、Iは、httpsにリダイレクト301コードを返す私のnginxのリバースプロキシにこれと「永久に削除」点

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()))); 
} 

、これを発見しました。残念ながら、私はここからどこへ進めるべきかわかりません。

追加情報 ファイアウォールのテスト用にポート80(http)をブロックしました。ダウンロード用のparse-android-sdkがhttpからダウンロードしようとしています。私は "https"で私の解析サーバのリンクを指定しているので、アップロードがうまくいっていることは奇妙です。自分のサーバー上のダッシュボードを使ってアップロードした画像を見ることができます。

使用して、

  • 解析サーバ2.2.13
  • 解析のAndroid SDK 1.13.1
  • 解析ダッシュボード1.0.14

答えて

1

私は直接によって、この問題の回避策を見つけましたファイルをダウンロードします。私はParseFile.getUrl()メソッドを使用してURLを取得し、それを使用してファイルをダウンロードして使用しました。

私の場合、それは.jpgファイルでした。そして、私はすべてのダウンロード/キャッシュ/イメージビューへの読み込みを担当する外部ライブラリを使用しました。

これらのライブラリの両方が

https://github.com/koush/ion

http://square.github.io/picasso/

うまく働きます
関連する問題