【问题标题】:Using WinRT BackgroundUploader with Windows Azure Blob Storage将 WinRT BackgroundUploader 与 Windows Azure Blob 存储结合使用
【发布时间】:2013-03-17 23:49:16
【问题描述】:

在使用 JavaScript 的 Windows 8 应用程序中,我尝试使用定义的共享访问签名 in this technique 将文件上传到 Windows Azure Blob 存储,但我想使用 WinRT BackgroundUploader 而不是标准存储客户端上传器。当我调用此代码时,没有任何反应,并且 Windows Azure 管理控制台中的存储容器为空。

以前有人做过吗?

有人对我应该如何将 SAS 放入 BackgroundUploader 的 serverCredential 属性有任何建议吗?

            table.insert(upload)
        .then(function (e) {

            var backgroundTransfer = Windows.Networking.BackgroundTransfer,
                uploader = new backgroundTransfer.BackgroundUploader(),
                uri = new Windows.Foundation.Uri(upload.sas),
                operation,
                sasToken = uri.query.substr(1);

            uploader.setRequestHeader("Content-Type", file.contentType);
            uploader.setRequestHeader("x-ms-blob-type", "BlockBlob");

            operation = uploader.createUpload(uri, file);

            operation.startAsync().then(function (uploadComplete) {
                console.info(uploadComplete);
                complete("https://" + uri.host + "/" + upload.containerName + "/" + file.name);
            },
            function (uploadError) {
                console.error(uploadError);
            },
            function (uploadProgress) {
                console.info(uploadProgress);
            });

【问题讨论】:

    标签: azure windows-8 windows-store-apps azure-storage winjs


    【解决方案1】:

    首先,请将BackgroundUploader.Method 设置为“PUT”,因为默认的“POST”方法不能用于上传blob。除此之外,请检查以下内容:

    • SAS 令牌应该有写权限。
    • 上传的文件必须小于 64MB,因为这是Put Blob API 允许的最大限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-09
      • 2017-02-01
      • 2013-02-01
      • 2017-12-09
      • 2014-09-19
      • 2018-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多