0

我有一个用于容器的 SAS(仅限 WRITE,但我也尝试 READ-WRITE-LIST)。我需要将单个文件上传到该容器。所以我为此使用 AzCopy:

AzCopy /Source:./ /Dest:https://account.blob.core.windows.net/container/?sv=2018-03-28&si=write&sr=c&sig=****** /Pattern:somefile.ext /V:./AzCopy.log

我尝试了另一个版本:

AzCopy /Source:somefile.ext /Dest:https://account.blob.core.windows.net/container/somefile.ext /DestSAS:******

但这也不起作用。

我尝试了两个 AzCopy 版本 - 7.1.3 和 8.1!我还应该尝试什么?

顺便说一句,使用 Powershell 它就像一个魅力,具有相同的 SAS 令牌!Windows 10 最新。

更新

日志(在完全不同的机器上制作):

[2019.03.22 06:39:41.551+03:00] >>>>>>>>>>>>>>>> [2019.03.22 06:39:41.561+03:00][详细] 完成:0文件,0 B;平均速度:0 B/s。[2019.03.22 06:39:41.569+03:00][详细] 8.1.0:AzCopy /Source:somefile.ext /Dest: https://account.blob.core.windows.net/korch/somefile.ext /DestSAS:****** /V:./AzCopy with SAS.log [2019.03.22 06:39:41.589+03:00][ERROR] 从“C:\Users”读取重启日志时出错\user\AppData\Local\Microsoft\Azure\AzCopy”。详细错误:解析日志文件时出错:日志文件是由不同版本的 AzCopy 生成的。[2019.03.22 06:39:43.175+03:00][VERBOSE] [PROMPT] 您要覆盖日志以开始新操作吗?选择是覆盖,选择否取消当前操作。(是/否):Y [2019.03.22 06:39:43.230+03:00][VERBOSE] 尝试将地址“somefile.ext”解析为目录作为候选位置成功。[2019.03.22 06:39:43.232+03:00][VERBOSE] 尝试将地址“somefile.ext”解析为单个文件作为候选位置成功。[2019.03.22 06:39:43.239+03: 00][详细] 源被解释为本地文件:G:\1\somefile.ext。[2019.03.22 06:39:43.260+03:00][详细] 尝试解析地址'https://account.blob.core.windows.net/korch/somefile.ext ' 到一个目录作为候选位置成功。[2019.03.22 06:39:43.269+03:00][VERBOSE] 尝试将地址“ https://account.blob.core.windows.net/korch/somefile.ext ”解析为单个文件作为候选位置成功了。[2019.03.22 06:39:43.270+03:00][VERBOSE] 将目标解释为单个文件,因为提供的源是单个文件。[2019.03.22 06:39:43.271+03:00][VERBOSE] 目的地被解释为云 blob:https ://account.blob.core.windows.net/korch/somefile.ext 。[2019.03.22 06:39:43.942+03:00][VERBOSE] 开始传输:G:\1\somefile.ext => https://account.blob.core.windows.net/korch/somefile.ext[2019.03.22 06:39:44.149+03:00][详细] 传输失败:G:\1\somefile.ext => https://account.blob.core.windows.net/korch/somefile.ext。[2019.03.22 06:39:44.158+03:00][ERROR] 发生未知错误:传输失败。服务器未能验证请求。确保 Authorization 标头的值正确形成,包括签名。HttpStatusMessage:服务器未能验证请求。确保 Authorization 标头的值正确形成,包括签名。RequestId:76ffafce-901e-0132-6460-e00b82000000 时间:Fri, 22 Mar 2019 06:39:44 GMT [2019.03.22 06:39:44.161+03:00] 转账摘要: --------- -------- 传输的文件总数:1 传输成功:0 传输跳过:0 传输失败:1 经过时间:00.00:00:02

4

2 回答 2

1

好的,我为 AzCopy 单个文件创建了一个 .CMD 文件。但我不知道我必须在 Windows 批处理文件中转义 % 。这就是最后 SAS 令牌不正确的原因。

于 2019-03-22T04:37:29.897 回答
0

这是我尝试过的有效方法。

AzCopy /Source:D:\temp /Dest:https://account-name.blob.core.windows.net/blob-container-name /DestSAS:"?se=2019-03-30T18%3A30%3A00Z&sp=rw&sv=2018-03-28&sr=c&sig=xxxxx...%3D" /Pattern:test.txt

AzCopy /Source:D:\temp2 /Dest:"https://account-name.blob.core.windows.net/blob-container-name?se=2019-03-30T18%3A30%3A00Z&sp=rw&sv=2018-03-28&sr=c&sig=xxxxx...%3D" /Pattern:test.log

我注意到的一件事是,如果我只包含Write权限,操作就会失败。我必须在我的 SAS 中添加Read权限才能使操作成功。

此外,我必须在双引号中包含 SAS 令牌。

于 2019-03-22T03:53:24.117 回答