阿里云OSS服务 — 上传失败

2023-07-11,,

问题重现

使用PicGo + 阿里云对象存储搭建图床,一直都能够正常使用,在没有修改任何配置的情况下,上传图片一直失败

出现如下错误:

StatusCodeError: 403 - "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error>\n  <Code>SignatureDoesNotMatch</Code>\n  <Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>\n  <RequestId>62C6AB175C0069393406DCEC</RequestId>\n  <HostId>lzy-gallery.oss-cn-hangzhou.aliyuncs.com</HostId>\n  <OSSAccessKeyId>LTAI5tBzvHTuwZhbyTuy2a5d</OSSAccessKeyId>\n  <SignatureProvided>88NzhUKMUF/n4K7i9+dOhwMoB9A=</SignatureProvided>\n  <StringToSign>PUT\n\nimage/png\nThu, 07 Jul 2022 09:44:55 GMT\n/lzy-gallery/images/B 树.png</StringToSign>\n  <StringToSignBytes>50 55 54 0A 0A 69 6D 61 67 65 2F 70 6E 67 0A 54 68 75 2C 20 30 37 20 4A 75 6C 20 32 30 32 32 20 30 39 3A 34 34 3A 35 35 20 47 4D 54 0A 2F 6C 7A 79 2D 67 61 6C 6C 65 72 79 2F 69 6D 61 67 65 73 2F 42 20 E6 A0 91 2E 70 6E 67 </StringToSignBytes>\n</Error>\n"
at new StatusCodeError (G:\tools\PicGo\resources\app.asar\node_modules\request-promise-core\lib\errors.js:32:15)
at Request.plumbing.callback (G:\tools\PicGo\resources\app.asar\node_modules\request-promise-core\lib\plumbing.js:104:33)
at Request.RP$callback [as _callback] (G:\tools\PicGo\resources\app.asar\node_modules\request-promise-core\lib\plumbing.js:46:31)
at Request.self.callback (G:\tools\PicGo\resources\app.asar\node_modules\request\request.js:185:22)
at Request.emit (events.js:200:13)
at Request.<anonymous> (G:\tools\PicGo\resources\app.asar\node_modules\request\request.js:1154:10)
at Request.emit (events.js:200:13)
at IncomingMessage.<anonymous> (G:\tools\PicGo\resources\app.asar\node_modules\request\request.js:1076:12)
at Object.onceWrapper (events.js:288:20)
at IncomingMessage.emit (events.js:205:15)

问题解决

查看错误日志发现:

<StringToSign>PUT\n\nimage/png\nThu, 07 Jul 2022 09:44:55 GMT\n/lzy-gallery/images/B 树.png</StringToSign>

图片名字的 "+" 号不见了,于是笔者将图片命名改为 "B_plus_tree.png" 重新上传成功。

为什么加号会导致上传失败呢?

笔者查看了阿里云对象命名规则:

使用UTF-8编码,长度在1~1023字节,不能以斜线开头即可。按照这个逻辑使用 "+" 号完全没问题呀。于是猜测是PicGo的问题,但是没有找到PicGo的图片命名规则。

有知道的小伙伴欢迎解惑。

阿里云OSS服务 — 上传失败的相关教程结束。

《阿里云OSS服务 — 上传失败.doc》

下载本文的Word格式文档,以方便收藏与打印。