繁体   English   中英

无法使用REST API和curl从Azure文件存储中检索文件列表

[英]Cannot retrieve file list from Azure File Storage using REST API and curl

我正在尝试使用REST API和curl来检索存储在Azure File Storage帐户中的文件列表,我使用共享密钥根据文档正确地计算了标头,但是curl请求既不返回文件列表也不出现任何错误消息。

这是我的要求和回复:

curl -v -H "Authorization: SharedKey myaccount:bAJKeY0xyOZLSJOLDoHfXXOqfA4kOGo1DVFP3BejhY8=" -H "x-ms-date:Mon, 13 Aug 2018 15:22:31 GMT" -H "x-ms-version:2017-07-29" --url https://myaccount.file.core.windows.net/myshare/mydir?restype=directory&comp=list

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 52.239.140.8...

* Connected to myaccount.file.core.windows.net (52.239.140.8) port 443 (#0)
* found 148 certificates in /etc/ssl/certs/ca-certificates.crt
* found 597 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_256_GCM_SHA384
*    server certificate verification OK
*    server certificate status verification SKIPPED
*    common name: *.file.core.windows.net (matched)
*    server certificate expiration date OK
*    server certificate activation date OK
*    certificate public key: RSA
*    certificate version: #3
*    subject: CN=*.file.core.windows.net
*    start date: Thu, 09 Nov 2017 05:42:03 GMT
*    expire date: Sat, 09 Nov 2019 05:42:03 GMT
*    issuer: C=US,ST=Washington,L=Redmond,O=Microsoft Corporation,OU=Microsoft IT,CN=Microsoft IT TLS CA 5
*    compression: NULL
* ALPN, server did not agree to a protocol

GET /myshare/mydir?restype=directory HTTP/1.1

Host: myaccount.file.core.windows.net

User-Agent: curl/7.47.0

Accept: */*

Authorization: SharedKey 
myaccount:bAJKeY0xyOZLSJOLDoHfXXOqfA4kOGo1DVFP3BejhY8=
x-ms-date:Mon, 13 Aug 2018 15:22:31 GMT
x-ms-version:2017-07-29

HTTP/1.1 200 OK

Transfer-Encoding: chunked

Last-Modified: Fri, 27 Apr 2018 16:11:14 GMT

ETag: "0x8D5AC597FF96B3D"

Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0

x-ms-request-id: 75d6d7c8-f01a-0011-5b19-33104d000000

x-ms-version: 2017-07-29

x-ms-server-encrypted: true

Date: Mon, 13 Aug 2018 15:22:29 GMT

{ [5 bytes data]
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Connection #0 to host myaccount.file.core.windows.net left intact

没有返回带有文件列表的XML。 我尝试在myaccount下检索共享列表,该列表可以正常工作,也可以下载单个文件,但是我无法收到目录下的文件列表。

两点:

  1. 在curl命令中查看url

     --url https://myaccount.file.core.windows.net/myshare/mydir?restype=directory&comp=list 

    您忘记将url放在""从而剪切了&comp=list ,因为&是保留符号。 输出GET /myshare/mydir?restype=directory HTTP/1.1也证明了这一点。

  2. 通常来说,如果url缺少comp参数,则应该获得错误消息AuthenticationFailed,因为comp是用于生成SharedKey的。 但是,使用SharedKey会得到HTTP/1.1 200 OK

    根据您获得的响应标头,我猜您在构造SharedKey时也错过了comp ,因此SharedKey和url能够正确获取目录属性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM