我正在尝试使用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>发布于 2021-07-07 10:41:26
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然后,您可以将它生成的标题与您使用的标题进行比较。
https://stackoverflow.com/questions/68277911
复制相似问题