javascript - 如何使用 javascript 将文本字符串从浏览器直接上传到 Windows Azure Blob

标签 javascript api rest azure blob

我想使用浏览器端 JavaScript 从 Web 浏览器将文本/html 字符串作为 Azure Blob 直接上传到 Azure 存储(无需首先通过 Azure VM/Web 服务器)。根据我的研究,我了解到可以使用 Azure REST API + 共享访问签名从 Silverlight 客户端或通过 MVC 3 View 来实现这一目标。 (这里是使用 SilverLight/MVC3 的控件的链接: http://code.msdn.microsoft.com/silverlight/Silverlight-Azure-Blob-3b773e26#content )。我还找到了一个使用服务器端 javascript 和 Node.JS 进行上传的库 https://github.com/jpgarcia/waz-storage-js .

我的问题是,如何仅使用浏览器端 javascript、html 和 SAS(不使用 Silverlight 或 MVC)将文本字符串上传到 Azure blob,并直接将其上传到 Azure,而不通过 Web 服务器?如何将字符串值传递给 Azure Rest API 调用(它会接受 JSON 字符串吗?)?我查看了 MSDN REST api 示例,但我不清楚如何传递要上传的文本字符串。有人能帮忙吗?提前致谢。

最佳答案

我认为这是不可能的。除非网页是从同一个 Blob 存储域托管的,否则这将是跨域调用,这是不允许的(除非设置了 CORS header ,但它们不适用于 Blob 存储)。

此外,上传到 blob 需要 HTTP PUT 请求,而且我相信大多数浏览器只允许 POST 和 GET。

更新

请参阅下面的评论,但看起来某些浏览器确实允许 PUT 请求。如前所述,可以通过从同一 Blob 存储帐户提供原始页面来破坏同源策略。在这种情况下,代码将如下所示(使用 jQuery):

$.ajax({
    url: url,
    type: 'PUT',
    data: 'Hello, World!',
    headers: {'Content-Type': 'text/html'}
}).success(function () {
    console.log('Saved successfully.');
});

关于javascript - 如何使用 javascript 将文本字符串从浏览器直接上传到 Windows Azure Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12788350/

相关文章:

java - 如何在tomcat 7中启用mysql数据库驱动程序?

c# - 有什么方法可以让 OWIN 托管 SOAP 服务?

Javascript FileReader readAsText 函数不理解 ä 和 ö 等 utf-8 编码字符

javascript - 将 jQuery 添加到 Adob​​e Brackets HTML 编辑器中

python - 从 Django Rest Framework 中的 token 获取经过身份验证的用户

python - 从不完整的 HTTP JSON 响应中完成 json 字符串

javascript - datatables DOM 元素完全加载时的回调函数

javascript - 如何更改下面的 url 重定向脚本

javascript - 如果用户输入城市和州,则使用 zippopotam.us 自动填充邮政编码

java - Jersey HTTP 响应 200 OK 但返回内容错误(用户名/密码不正确)