Open yjhjstz opened 8 years ago
目前还没有。
你在什么情况下出现了文件错误?
无法重现,但场景是文件很大。 希望可以增加该特性,选项控制开启。
这里问题可能是两种:
-o enable_content_md5
来校验,如果出现错误会导致文件上传不成功对于普通文件是的;但是multipart形式上传的文件,返回的ETag并不是文件的md5。
ETag (entity tag) 在每个Object生成的时候被创建,用于标示一个Object的内容。对于Put Object请求创建的Object,ETag值是其内容的MD5值;对于其他方式创建的Object,ETag值是其内容的UUID。ETag值可以用于检查Object内容是否发生变化。 类型:字符串 默认值:无
我说的就是普通大文件的同步到本地场景,不是上传。
你能通过SDK访问吗?然后在应用层做校验逻辑。
分层角度看,在应用层做不合适,因为应用层已经拿不到 ETag 了。
我想是在 s3fs_release()
增加对整个文件 md5的校验。
不一定有用吧,假如文件数据出错了,你在s3fs_release()
之前可能已经将错误的数据读走并处理了。这时再做校验未必有意义了。
我目前是逻辑是
那这对你的使用逻辑是适用的。
你能使用SDK访问吗?更自由一些。你可以在自定义meta中把md5填进去,下载下来之后再校验一遍。
不能用 SDK,就是考虑到 ossfs 兼容了 posix file api 。