私は、jQueryプラグインを介してCloudinaryへの直接アップロードをNode.jsアプリケーションに実装しようとしていますが、例のギャップを埋めるのを誰かが手伝ってくれるかどうか疑問に思っています。
これを行う方法を説明するブログ投稿は次のとおりです。
http://cloudinary.com/blog/direct_image_uploads_from_the_browser_to_the_cloud_with_jquery
「その他の開発フレームワークと高度な使用法」のセクションで、私がこだわっている部分は次のとおりです。
- "data-form-dataをアップロードAPIパラメーターのJSON表現に設定します。必須フィールドはapi_key、timestamp、signature、callbackです。"、
より具体的には:
- 「正しい認証を行うには、サーバー側で署名を生成する必要があります。」
これを達成する方法の正確な例はないようです。
例は次のとおりです。
<input name="file" type="file"
class="cloudinary-fileupload" data-cloudinary-field="image_upload"
data-form-data=" ... html-escaped JSON data ... " ></input>
data-form-dataのエスケープされていないJSONコンテンツは次のとおりです。
{ "timestamp": 1345719094,
"callback": "https://www.example.com/cloudinary_cors.html",
"signature": "7ac8c757e940d95f95495aa0f1cba89ef1a8aa7a",
"api_key": "1234567890" }
署名をどのように生成しますか?node.jsでこれを行う必要があることを理解しています。フォームが生成されたときに発生する必要があるようですが、署名にはタイムスタンプを含める必要があります。これは、ユーザーが使用するまでに確実に古くなっています。フォームに記入しましたか?
リクエスト認証のドキュメントはこちらです:http://cloudinary.com/documentation/upload_images#request_authentication
私が使用しているcloudinary_npmuploader.coffee
モジュールには、これを実現するためのヘルパーのように見える呼び出されたメソッドがありますがdirect_upload
、実際にすべてをバインドする方法がわかりません。
ブログ投稿に実際の例がある2つのフレームワーク、RailsとDjangoは、独自のヘルパーを介してこの複雑さを抽象化します。たとえば、Djangoで{{ form.image }}
フォームに追加すると、結果が出力されます。image = cloudinary.forms.CloudinaryJsFileField()
残念ながら、他のサーバー側環境でこれを複製する方法カバーされていません。
誰かがこれに光を当てたり、エンドツーエンドで機能させる方法の要点や例を共有したりできるなら、私はそれを大いに感謝します。