首页 > 其他分享 >S3服务器上传问题

S3服务器上传问题

时间:2024-02-21 17:01:27浏览次数:16  
标签:文件 S3 contentMD5 服务器 上传 MD5

客户S3环境有升级变迁,然后之前上传文件服务器出现异常问题

生产环境S3服务器文件上传异常原因及解决方案:

上传文件-异常信息如下

com.amazonaws.SdkClientException: Unable to verify integrity of data upload. Client calculated content hash (contentMD5: EWsFdgDklAxX7zec1r+G6A== in base 64) didn't match hash (etag: 00000001bb63458f65af7d7b01ec0120 in hex) calculated by Amazon S3. You may need to delete the data stored in Amazon S3. ( metadata.contentMD5: null , md5DigestStream: com.amazonaws.services.s3.internal.MD5DigestCalculatingInputStream@113213f1, bucketName: e-invoice, key: 2024/123/test-7.png)

问题原因:

上传文件时有个ContentMD5属性,需要计算出文件的Base64编码的MD5哈希值,并通过metadata.setContentMD5(contentMD5)方法设置进去。上传后,AWS.S3服务器接收到文件,会对上传的内容进行MD5哈希运算,并将结果与上传时设置的contentMD5值进行比较比较。

如果没提供 ContentMD5 ,则依赖于S3服务的ETag作为完整性检查。ETag可能不总是等同于MD5哈希值,特别是在多部分上传(Amazon S3提供的一种文件上传机制,它允许将大型文件分成较小的部分逐个上传,而不是一次性上传整个文件)。因此需要通过提供MD5值,消除了依赖ETag的不确定性。

我们原先的代码,没有提供MD5值,原先客户部署在上海的老的S3服务器的上传策略没有一致性校验。最近客户对生产环境的S3文件服务器做了迁移与升级,现在是版本较新的S3服务器,猜测是新得机器上传策略做了调整,有md5一致性校验策略。

解决方案:

方案一:上传时关闭md5校验 System.setProperty(SkipMd5CheckStrategy.DISABLE_PUT_OBJECT_MD5_VALIDATION_PROPERTY, "true"); 不建议,传输过程中有可能文件发生变化,关掉这个校验会存在安全问题

方案二:上传前,计算文件的md5值,并设置到ContentMD5属性中,确保了数据在传输过程中没有损坏或发生变化

最后改成了 方案二 ,经测试也兼容了老的S3文件服务器,故选择此方案

标签:文件,S3,contentMD5,服务器,上传,MD5
From: https://www.cnblogs.com/live2learn/p/18025661

相关文章

  • Linux服务器配置nginx访问静态网页
    配置nginx 打开conf文件进行编辑:sudonano/etc/nginx/nginx.conf在http块内添加:server{listen80;server_namexxx.your_domain.com;root/root/work/your_web_folder;indexindex.html;}重启nginx:sudoservicenginxrestart如果......
  • c# 代码操作ftp服务器文件
    好久不见,我又回来了。给大家分享一个最近c#代码操作ftp服务器的代码示例 1publicabstractclassFtpOperation2{3///<summary>4///FTP服务器地址5///</summary>6privatestringftpServer;78///<s......
  • 【技巧】金融企业在搭建服务器时,选择私有云方案还是全栈专属云?
    金融企业在搭建服务器时,选择私有云方案还是全栈专属云,需要根据企业的具体需求和情况进行综合考虑。CloudAce云一作为谷歌云全球战略合作伙伴,专注于企业级出海云服务 ,为大家带来两种方案的优劣势比较:私有云优势安全性高:私有云的资源由企业自建和管理,可以完全控制数据......
  • 关于8串口服务器例程的使用
    打开该例程之后,首先看一下该例程注释,注释中介绍:该8串口服务器例程设置串口波特率为921600,且仅可用于10M网络,例程中将ld文件中FLASH、RAM的大小配置为192,注意在下载使用时要将MCUFLASH、RAM的配置改为192+128,具体修改方法如下: 此外,由于将8个串口都用于实现8串口网络服务器通......
  • centos服务器中病毒dealer sshc dudu
    参考:http://www.ityunxiu.com/news/industry/26.html1问题这几天服务器一直出问题执行命令:top突然发现系统上多了一个不知道是什么的服务,占用大量的cpu 2查找及解决2.1执行ps-ef发现是这个进程,不知道哪里来的,应该是病毒了 2.2执行命令cronta......
  • CTFer——文件上传漏洞——白名单检测
    代码文件中包含一个数组或者列表,包含一些合法的字符或者字符串 如何确认:上传一张图片与一个自己构造的后缀,如果只能上传照片,不能上传其他后缀文件,说明是白名单检测绕过方式:可以利用00截断的方式进行绕过,包含%00截断与0x00截断。 %00截断:%00是一个url编码,url发送到服务器后......
  • webrtc终极版(三)将官方的demo部署到自己的服务器中
    webrtc终极版(三)将官方的demo部署到自己的服务器中本节,我们详细介绍下,如何再本地搭建RTCMultiConnection服务目录webrtc终极版(三)将官方的demo部署到自己的服务器中前言一、安装步骤1.下载并解压文件2.使用npm安装总结前言webrtc终极版系列,再年前,写了前两篇,还剩下两篇没有写,......
  • ABAP:GOS上传和下载附件功能
     GOS附件上传常用的几种对象类型:采购订单:BUS2012销售订单:BUS2032DN交货单:LIKP销售发票:VBRK采购发票:BUS2081会计凭证:BUS6035可以在TOJTT表中查找相关对象类型*&---------------------------------------------------------------------**&ReportZTEST_GOS......
  • windows server 2019/2022安装WSUS更新服务器配置System.Runtime.InteropServices.COM
    现象: 2024-02-1814:41:10Postinstallstarted2024-02-1814:41:10Detectedroleservices:Api,UI,WidDatabase,Services2024-02-1814:41:10Start:LoadSettingsFromXml2024-02-1814:41:10Start:GetConfigValuewithfilename=UpdateServices-Services.xmlit......
  • 打开云服务器的MySQL数据库表很慢
    远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常。出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析。解决方法:在my.ini(WINDOWS系统下)或my.cnf(UNIX或LINUX系统下)文件的[mysqld]下加入skip-name-resolve这一句。连接mysql速度慢的解决......