我正在尝试通过他们的jQuery插件将文件直接上传到Cloudinary,并想知道是否有人可以帮助我填补他们的示例中存在的一些漏洞。
以下是解释如何实现它的博客文章:
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_npm模块,在其中有一个名为
uploader.coffee
的方法称为direct_upload
,似乎是一个辅助程序,可以使其发生,但我不确定如何将其全部绑定在一起。博客文章中具有真实示例的两个框架,Rails和Django,通过它们自己的帮助程序来抽象化这种复杂性,例如在Django中,您将
{{form.image}}
添加到表单中,该表单输出来自image = cloudinary.forms.CloudinaryJsFileField()
的结果-不幸的是,如何在任何其他服务器端环境中复制它并没有涉及。如果有人能够解释一下这个问题,或者分享一个gist或示例,以便使其从头到尾正常工作,我将非常感激。