2016-05-19 5 views
1

私は画像への参照を持つコレクションを持っており、そのコレクションを新しい画像で更新するときに古い画像を削除したい。古いイメージのURLへの参照をクラウドコードで記述された関数に渡しています。opensource parse-serverを使用してParseでPFFileを削除するのに問題がある

私はこのローカルのすべてを自分のコンピュータで実行していますが、Herokuで実行しているサーバーでこれを実行すると、同じ問題が発生します。これは、iOS SDKから呼び出されています。ここで

は、問題の関数である。

Parse.Cloud.define('removeOldFilesFromDB', function (request, response) { 

    var fileUrls = request.params.fileUrls; 
    var promises = []; 

    for (var a = 0; a < fileUrls.length; a++) { 

     promises.push(Parse.Cloud.httpRequest({ 
      method: 'DELETE', 
      url: fileUrls[a], 
      headers: { 
       'X-Parse-Application-Id': process.env.APP_ID || 'myAppId', 
       'X-Parse-Master-Key': process.env.MASTER_KEY || 'myMasterKey' 
      } 
     })); 

    } 

    Parse.Promise.when(promises).then(function (result) { 
     console.log("Successfully deleted files"); 
     response.success(result); 
    }, function(a,b,c,d,e) { 
     console.log("Nope jacked it up!"); 
     response.error("Error deleting files"); 
    }); 

}) 

私は問題のコードを呼び出すと、私もすべての構文解析サーバログにDELETE要求が表示されません。

私は私の設定で設定したverbose: true旗を持っており、これは、クライアントからこの呼び出しを行うときに私が取得するログに詳細な出力です:

verbose: POST /parse/functions/removeOldFilesFromDB { host: 'e0ae0682.ngrok.io', 
'x-parse-client-version': 'i1.12.0', 
accept: '*/*', 
'x-parse-session-token': 'r:5290c76c47678213770765d990ee38b6', 
'x-parse-application-id': 'myAppId', 
'x-parse-client-key': 'myClientKey', 
'x-parse-installation-id': '3fafc219-1c63-4d68-b42f-5caa3e1c27cb', 
'accept-language': 'en-us', 
'accept-encoding': 'gzip, deflate', 
'x-parse-os-version': '8.1 (12B411)', 
'content-type': 'application/json; charset=utf-8', 
'content-length': '204', 
'user-agent': 'Spin%20the%20Bottle/1 CFNetwork/711.1.12 Darwin/14.0.0', 
'x-parse-app-build-version': '1', 
'x-parse-app-display-version': '1.0', 
'x-forwarded-for': '71.163.238.223' } { 
"fileUrls": [ 
    "http://e0ae0682.ngrok.io/parse/files/myAppId/7b5b50e2871af27971be0425f367ab96_file.bin", 
    "http://e0ae0682.ngrok.io/parse/files/myAppId/cff909602b60b15331b1ac60a4f08697_file.bin" 
    ] 
} 

Nope jacked it up! 
verbose: error: code=141, message=Error deleting files 

は、だから、DELETE呼び出しがないことを奇妙ですそこにさえ現れる。 Parse.Cloud.httpRequestメソッドなどで間違っていると思いますか?

ブラウザでfileUrlの値をヒットした場合、削除しようとしている画像がダウンロードされ、パスが正しいようになります。

これは、最新のバージョンのparse-server、2.2.10にあります。

https://parse.com/questions/making-a-rest-call-from-within-cloud-code:クラウドコードから、残りの呼び出しを行うためにここに

https://parse.com/docs/rest/guide/#files-deleting-files

そして、この:

これらは、私はこれはこれを行うには正しい方法であると考え、次のされた指示でした

これによれば、Parse.Cloud.httpRequestを使用してREST呼び出しを行うことができると言われています。正しい方法ではなく、あなたが何を参照しているのかわかりません。どちらもドキュメントへのリンクがあり、それは私が従ったものです。

私は明らかに何か間違っていますが、誰でも手伝ってくれる人はいませんか?

答えて

0

ファイルURLからmyAppIdを削除するだけです。

(例えば)

http://e0ae0682.ngrok.io/parse/files/myAppIdから

/7b5b50e2871af27971be0425f367ab96_file.bin

http://e0ae0682.ngrok.io/parse/files/7b5b50e2871af27971be0425f367ab96_file.bin

+0

に私たちは、実際に多くの、バックエンドから完全に解析取り除くことになりました最終的にはより良い解決策: –

+0

Parseではなく、どのソリューションを選択しましたか? – ananfang

+0

私たちは、すぐに使用できるソリューションを使用せず、代わりに独自のnode.jsサーバーを使用しています。 Parseがなくなり、すべてのことを100%コントロールしているので、より安全です。 –

関連する問題