在传一个文件到服务器的时候,第一次传完看见大小不一样(服务器中du命令查看大小796596MB)就重传了一下,还是大小不一样,就查了下。
查了下有以下原因:
-
文件系统的不同:
- 原因:不同的文件系统可能会对文件大小的计算方式不同,尤其是在处理文件系统块大小和压缩文件头时。
- 解决方法:检查本地和服务器上的文件系统类型以及它们的块大小。
-
上传过程中数据压缩:
- 原因:某些上传工具或协议(如 FTP 或 SFTP)可能会对数据进行压缩。
- 解决方法:检查上传工具的设置,确保没有启用额外的压缩。
-
传输过程中数据丢失或损坏:
- 原因:在传输过程中可能发生数据丢失或损坏。
- 解决方法:尝试使用
md5
或sha256
校验和来验证文件完整性。
示例校验和生成和验证:
# 在本地生成校验和 md5sum yourfile.zip > yourfile.zip.md5 # 在服务器上验证校验和 md5sum -c yourfile.zip.md5
-
服务器上的存储空间不足:
- 原因:如果服务器上的存储空间不足,文件可能会被截断。
- 解决方法:检查服务器上的存储空间,确保有足够的空间存放文件。
-
上传工具的错误:
- 原因:某些上传工具可能存在问题,导致文件上传不完整。
- 解决方法:尝试使用不同的上传工具或方法。
-
权限和限制:
- 原因:服务器上的权限设置或文件大小限制可能会导致文件上传不完整。
- 解决方法:检查服务器上的权限和文件大小限制。
感觉应该是因为ftp协议额外压缩了文件,因此用md5进行校验
在macos上打开终端
md5 Downloads/models--bert-base-uncased.zip
得到
MD5 (Downloads/models--bert-base-uncased.zip) = 1dcd3bd5884bcc1fce2951bf7c90927
再在服务器上使用md5sum,同样得到1dcd3bd5884bcc1fce2951bf7c909275,文件解压也没有问题,因此就是在上传过程中进行了一次额外的压缩。
问题解决