如何解决Azure REST API 接受某些文件类型,禁止其他文件类型
我正在使用 Azure REST API 将文件从一个文件夹复制到另一个文件夹 (https://docs.microsoft.com/en-us/rest/api/storageservices/copy-file)。所有文件和文件夹都在同一个帐户中,在同一个文件共享中,由同一个用户帐户通过门户上传。我正在使用 SharedKey auth 并且所有请求的密钥都相同。身份验证部分代码来自 https://github.com/Azure-Samples/storage-dotnet-rest-api-with-auth.git,请求来自该代码,适用于获取/复制请求。
我的问题是尝试复制某些文件会导致 403 Forbidden 响应。这似乎与文件类型有关。文件扩展名不是一个因素。我可以复制 .jpg(和 .jpeg)、.txt 和 .pdf 文件。我无法复制 .exe、.mp4 或 .zip 文件。如果我在我的开发机器上用 .jpg 扩展名重命名 .exe 文件,然后通过门户上传到 /source 文件夹,尝试通过 API 复制会导致禁止响应。文件大小不是一个因素,我成功复制了实际的 .jpg 文件,这些文件大于问题文件类型。
我找不到任何示例或解释。测试详情如下。
(用字符串替换[myaccount],[some guid]确认非空且guid值有效)
我的文件共享下的目录是:
/目的地
/来源
测试 01:将 th.jpeg 从源复制到目标
请求:
{Method: PUT,RequestUri: 'https://[myaccount].file.core.windows.net/[myshare]/destination/th.jpeg',Version: 1.1,Content: <null>,Headers:
{
x-ms-date: Wed,27 Jan 2021 15:13:28 GMT
x-ms-version: 2017-04-17
x-ms-copy-source: https://[myaccount].file.core.windows.net/[myshare]/source/th.jpeg
Authorization: SharedKey [myaccount]:18sCuTcbEOA5TLC11hCEH0pkK93Ln/Wk1BSRy0ytEAA=
Request-Id: [value is same as Failed requests]
}}
回复:
{StatusCode: 202,ReasonPhrase: 'Accepted',Content: System.Net.Http.httpconnectionResponseContent,Headers:
{
ETag: "0x8D8C2D61A12C96B"
Server: Windows-Azure-File/1.0
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: [some guid]
x-ms-version: 2017-04-17
x-ms-copy-id: [some guid]
x-ms-copy-status: success
Date: Wed,27 Jan 2021 15:13:28 GMT
Content-Length: 0
Last-Modified: Wed,27 Jan 2021 15:13:28 GMT
}}
对以下文件的相同请求有效:
- 11866.jpg 207.77 KiB
- pancakes.jpg 6.26 MiB
- subcontractor.pdf 232.36 KiB
- text.txt 908 B
测试 02:将 2M.jpg 从源复制到目标
请求:
{Method: PUT,RequestUri: 'https://[myaccount].file.core.windows.net/[myshare]/destination/2M.jpg',27 Jan 2021 15:16:51 GMT
x-ms-version: 2017-04-17
x-ms-copy-source: https://[myaccount].file.core.windows.net/[myshare]/source/2M.jpg
Authorization: SharedKey [myaccount]:QWYuXaE0Djs8k3xtOYMpZ831zX/mVD1Kwx1jgwDK9Oo=
Request-Id: [value is same as successful requests]
}}
回复:
{StatusCode: 403,ReasonPhrase: 'Server Failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.',Headers:
{
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: [some guid]
Date: Wed,27 Jan 2021 15:16:51 GMT
Content-Length: 763
Content-Type: application/xml
}}
对以下文件的相同请求以相同的状态和原因失败:
- 15M.jpg 15.13 MiB
- 2M.jpg 2.77 MiB
- 7M.jpg 7.77 MiB
- FCVideo.jpg 106.09 MiB
- FCVideo.mp4 106.09 MiB
- FluentConference.zip 1020.49 MiB
以上列表中的所有 jpg 文件实际上都是已重命名的 .exe 或 .zip 文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。