Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure AzCopy-如何使用SAS将单个文件上载到容器_Azure_Azure Blob Storage_Azcopy - Fatal编程技术网

Azure AzCopy-如何使用SAS将单个文件上载到容器

Azure AzCopy-如何使用SAS将单个文件上载到容器,azure,azure-blob-storage,azcopy,Azure,Azure Blob Storage,Azcopy,我有一个SAS for容器(只写,但我也尝试读写列表)。我需要上传一个文件到那个容器。因此,我使用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:some

我有一个SAS for容器(只写,但我也尝试读写列表)。我需要上传一个文件到那个容器。因此,我使用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令牌! Windows10最新版本

更新

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

[2019.03.22 06:39:41.551+03:00]>>>>>>>>>>>>>>>>>>>[2019.03.22] 06:39:41.561+03:00][VERBOSE]已完成:0个文件,0个B;平均速度:0 B/s。[2019.03.22 06:39:41.569+03:00][VERBOSE]8.1.0:AzCopy /来源:somefile.ext /目的地: /DestSAS:******/V:./AzCopy with SAS.log[2019.03.22] 06:39:41.589+03:00][错误]读取重新启动时出错 来自“C:\Users\user\AppData\Local\Microsoft\Azure\AzCopy”的日志。 详细错误:分析日志文件时出错:日志文件无效 由AzCopy的其他版本生成。[2019.03.22 06:39:43.175+03:00][VERBOSE][PROMPT]是否覆盖 要开始新操作吗?选择“是”覆盖,选择“否” 取消当前操作。(是/否):是[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][VERBOSE]源被解释为本地文件: G:\1\somefile.ext。[2019.03.22 06:39:43.260+03:00][VERBOSE]试图 解析地址 ”“是的 目录作为候选位置成功。[2019.03.22 06:39:43.269+03:00][VERBOSE]尝试分析地址 ”“一个人 文件作为候选位置成功。[2019.03.22 06:39:43.270+03:00][VERBOSE]将目标解释为单个文件 因为提供的源是单个文件。[2019.03.22 06:39:43.271+03:00][VERBOSE]目标被解释为云 水滴:。 [2019.03.22 06:39:43.942+03:00][VERBOSE]开始传输: G:\1\somefile.ext=> [2019.03.22 06:39:44.149+03:00][VERBOSE]传输失败:G:\1\somefile.ext=> . [2019.03.22 06:39:44.158+03:00][错误]发生未知错误:传输失败 失败。服务器无法对请求进行身份验证。请确定值 包含签名的授权标头的格式正确。 HttpStatusMessage:服务器无法验证请求。确保 授权标头的值已正确形成,包括 签名。请求ID:76ffafce-901e-0132-6460-e00b82000000时间:22日星期五 2019年3月06:39:44格林尼治标准时间[2019.03.22 06:39:44.161+03:00]换乘 总结: -----------------传输的文件总数:1传输成功:0传输跳过:0传输失败:1运行时间: 00.00:00:02


这是我试过的有效方法

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令牌。

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

您还需要为源指定SAS?源是本地文件!您收到的错误消息是什么?未经授权的标题。能否编辑您的问题并包含完整的错误消息?我尝试了您上面使用的两个命令,并成功上载了本地文件。您确定您的SAS令牌使用了容器的策略吗?我没有使用策略。我在blob容器上创建了一个具有读写权限的特别SAS令牌。好的,我想我发现了问题。我制作了一个带有参数的.cmd文件,SAS令牌应该在批处理文件中转义。。。Gr。。。。!令人惊叹的!请包括您的解决方案作为答案。它可能会帮助其他使用命令文件方法的人。