0

JavaScript を使用する Windows 8 アプリで、この手法で定義された Shared Access Signature を使用して Windows Azure Blob Storage にファイルをアップロードしようとしていますが、標準のストレージ クライアント アップローダーの代わりに 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);
            });
4

1 に答える 1

0

まず、BackgroundUploader.Methodを「PUT」に設定してください。これは、デフォルトの「POST」メソッドを使用して BLOB をアップロードできないためです。それに加えて、次のことを確認してください。

  • SAS トークンには書き込み権限が必要です。
  • Put Blob APIで許可されている最大制限であるため、アップロードするファイルは 64MB 未満である必要があります。
于 2013-03-15T17:21:16.983 に答える