xml - REST API (XML):执行复制时出现 400 错误请求(缺少复制源)
问题描述
我正在尝试使用 XML API 和 x-goog-headers 复制 Google Cloud Storage 上的对象。即使存在 x-goog-copy-source 标头,也会收到带有“缺少复制源”的 400 错误请求。
PUT /New%20Folder%201/_gsdata_/_saved_/goodsync-server-geminilake.spk HTTP/1.1\r
Host: mike-bucket-12387691.storage.googleapis.com\r
Authorization: AWS4-HMAC-SHA256 Credential=GOOG1ERKJAO4BIEN7U64VO5IPJCDFLRCVBNE4ZH55WHHNSHKC5SLZ2MTHBPNY/20210706//s3/aws4_request, SignedHeaders=host;x-goog-copy-source;x-goog-date, Signature=bcd1626273229616cc257163f6e503462a2537d9266a66e15490d1cfcdb07cac\r
Connection: Keep-Alive\r
Content-Length: 0\r
Date: Tue, 06 Jul 2021 21:46:29 +0000\r
User-Agent: GstpClient/11.7.5.9 (Windows 10; 10.0.19042-2)\r
x-goog-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r
x-goog-copy-source: /mike-bucket-12387691/New%20Folder%201/goodsync-server-geminilake.spk\r
x-goog-date: 20210706T214629Z\r
=>
HTTP/1.1 400 Bad Request\r
X-GUploader-UploadID: ADPycdu-qroVy9DqW5sRwCfTxtzEiN7ju6LqALc_HR1ofgoIX7lTPZuZAr4UUbg2LfzB-UgJPdzdekt9KXzYoQHxVTY\r
Content-Type: application/xml; charset=UTF-8\r
Content-Length: 155\r
Vary: Origin\r
Date: Tue, 06 Jul 2021 21:46:29 GMT\r
Server: UploadServer\r
Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"\r
\r
<?xml version='1.0' encoding='UTF-8'?><Error><Code>InvalidArgument</Code><Message>Invalid argument.</Message><Details>Missing copy source</Details></Error>
解决方案
您的 x-goog-copy-source 中的值看起来格式不正确。
我建议您尝试运行这样的命令,以查看 gsutil 生成的 HTTP 请求:
gsutil -o GSUtil:prefer_api=xml -d cp gs://your-source-bucket/your-source-object gs://your-dest-bucket/your-dest-object
然后,您可以将它生成的标头与您使用的标头进行比较。
推荐阅读
- php - 如何循环发送ajax请求
- php - 在 DK PDF 模板中显示 WooCommerce 产品图像
- r - data.table 选择键不等于值的行
- python - 将嵌套字典列表转换为 pandas DataFrame
- jquery - 如何在 HTML 折叠列表中分隔超链接?
- javascript - 如何在木材框架中设置环境变量?
- python-2.7 - 无法使用来自 PyCharm 的 Datastore 模拟器运行 dev_appserver.py
- html - 带有 Ion 幻灯片的 iOS 13 中 HTML5 音频控件消失了
- shopify - 变体 ID 与 Shopify 中其他信息之间的关系
- javascript - 计算属性中的变异数据也改变了 vuex 存储中的数据:为什么?任何帮助表示赞赏