问题描述
使用ossfs上传文件到阿里云对象存储OSS时,是通过分片进行上传,分片大小默认为10 MB,分片最大数量为1000个,上传小文件正常,当上传大文件时,提示以下错误:
There is no enough disk space for used as cache(or temporary) directory by s3fs
问题原因
ossfs在上传文件时会写一些临时缓存文件到/tmp
目录下,在写这些文件之前需要先判断/tmp
目录所在的磁盘可用空间是否小于您上传的文件总量,若判断磁盘可用空间小于您上传文件总量,就会出现本地磁盘可用空间不足的报错。以下场景会导致磁盘可用空间不足的报错:
场景一:磁盘可用空间本身小于您上传文件总量。例如磁盘可用空间是200 GB,上传的文件是300 GB。
场景二:分片大小和上传线程数量的参数设置错误。例如磁盘可用空间是300 GB,需上传的文件是100 GB。因操作错误,multipart_size被设置成了100 GB,上传线程数量是5。此时ossfs判断上传的文件就是
100 GB*5=500 GB
,超过了磁盘安全空间。
解决方案
当您使用ossfs上传文件出现本地磁盘可用空间不足的报错时,请根据问题原因进行以下处理:
场景一:增大磁盘可用空间。
场景二:分片大小正常单位是MB,最大数量是1000,不要将分片大小设置过大。
相关文档
适用于
对象存储OSS
文档内容是否对您有帮助?