我get这个 http://127.0.0.1:8088/trans/getPutUploadUrl?fileMd5=e162d29f84c14133938890e54baa8ee7&fileSize=17353&fileName=1.jpg 给出这个信息 {"code":200,"message":"成功!","data":"{\"base64Md5\":\"4WLSn4TBQTOTiJDlS6qO5w==\",\"objectId\":\"4468a04b1f7144bcb2b33841b79080d4.jpg\",\"url\":\"http://127.0.0.1:9000/cloud-photo-3221003611/4468a04b1f7144bcb2b33841b79080d4.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230714T110156Z&X-Amz-SignedHeaders=content-md5%3Bhost&X-Amz-Expires=599&X-Amz-Credential=minioadmin%2F20230714%2F%2Fs3%2Faws4_request&X-Amz-Signature=b9fc62b49d8cf2946b54699cf55e6d8d4719fadc25391f60b59058ad24da3d36\"}","requestId":null} 然后我put了这个 http://127.0.0.1:9000/cloud-photo-3221003611/afe1b5502f684cb2905d8b8db248284c.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230714T105428Z&X-Amz-SignedHeaders=content-md5%3Bhost&X-Amz-Expires=599&X-Amz-Credential=minioadmin%2F20230714%2F%2Fs3%2Faws4_request&X-Amz-Signature=9fc2a0f6d8e917afde592356981bc2f21e0b29e8511d75ea9c7861fd048ff736 并且Content-MD5的值设置了4WLSn4TBQTOTiJDlS6qO5w== 但是又这个错误信息,为什么 <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>BadDigest</Code> <Message>The Content-Md5 you specified did not match what we received.</Message> <Key>afe1b5502f684cb2905d8b8db248284c.jpg</Key> <BucketName>cloud-photo-3221003611</BucketName> <Resource>/cloud-photo-3221003611/afe1b5502f684cb2905d8b8db248284c.jpg</Resource> <RequestId>1771B69533816A0C</RequestId> <HostId>370a84fd-7b54-4be9-9a51-a2d773c8339d</HostId> </Error>
时间: 2023-10-18 22:04:27 浏览: 165
根据你提供的错误信息,报错信息显示为`BadDigest`,即内容摘要错误。报错信息中提到的`The Content-Md5 you specified did not match what we received.`意味着你提供的Content-MD5与接收到的不一致。
首先,我们需要确认一下你的操作流程是否正确:
1. 你首先使用GET请求获取了一个上传URL,其中包含了一个base64编码的MD5值。
2. 然后,你使用PUT请求上传了一个文件,同时在请求中设置了Content-MD5头部字段,并提供了与之前获取的MD5值相匹配的值。
根据你提供的信息,我注意到了一个潜在的问题。在获取上传URL时,返回的MD5值为`4WLSn4TBQTOTiJDlS6qO5w==`,但是在你进行PUT请求时,你提供的Content-MD5值是`4WLSn4TBQTOTiJDlS6qO5w==`。这两个值看起来是一样的,但是请注意,MD5值是区分大小写的。因此,如果服务器对MD5值进行了大小写敏感的比较,这可能导致MD5值不匹配的错误。
请尝试将Content-MD5值设置为与获取上传URL时返回的MD5值完全相同,并确保大小写也匹配。如果服务器对MD5值进行了大小写不敏感的比较,那么你可以尝试将Content-MD5值转换为小写字母,并再次进行尝试。
如果问题仍然存在,请检查其他可能的原因,例如内容被篡改或代理服务器的干扰。如果问题仍然无法解决,请联系服务器管理员或技术支持以获取更多帮助。
相关问题
http://127.0.0.1:8081/auth/profile?eyJ0e,这个URL表示什么意思
这个URL表示一个Web应用程序的某个页面或服务的地址。具体来说,它是一个HTTP协议的URL,包含以下几部分:
- 协议:HTTP
- 主机名:127.0.0.1
- 端口号:8081
- 路径:/auth/profile
- 参数:eyJ0e
其中,协议、主机名和端口号一起组成了Web服务器的地址,表示你要访问哪个服务器上的应用程序。路径表示你要访问应用程序中的哪个页面或服务。参数则是可选的,用于向服务器传递额外的数据或信息。在这个URL中,参数的值是eyJ0e,具体表示什么需要根据应用程序的设计和实现来确定。
http://127.0.0.1:8189/tdcbjyq/cbfcbdk/sumDkInfoGdal?cbfbm='${cbfbm}'使用正则表达式截取端口号
这个URL中包含了端口号,端口号通常位于URL中冒号(:)后面的位置,直到遇到下一个斜杠(/)之前。正则表达式可以用来匹配和提取这个端口号。
以下是使用正则表达式截取端口号的步骤:
1. 使用`:`来定位端口号开始的位置。
2. 使用`\d+`来匹配一个或多个数字,这代表了端口号是数字组成的。
3. 使用`[\w\W]*`或者`[^/]*`来匹配端口号之后直到下一个`/`之前的所有字符,确保能够截取完整的端口号。
4. 因为我们知道端口号后面紧跟的是`/`,所以在正则表达式中,可以使用`/`来作为结束匹配的标记。
举例来说,可以构造如下的正则表达式:`:(\d+)[\w\W]*\/`,其中括号内的`\d+`是捕获组,用来提取端口号。
在某些编程语言中,如Python,可以使用`re`模块来实现:
```python
import re
url = "http://127.0.0.1:8189/tdcbjyq/cbfcbdk/sumDkInfoGdal?cbfbm='${cbfbm}'"
pattern = re.compile(r':(\d+)[\w\W]*\/')
match = pattern.search(url)
if match:
port = match.group(1)
print("端口号是:", port)
```
阅读全文