oss 可以把对象都放在同一层吗?会影响效率吗?

使用文件系统的时候,如果在一个文件夹里面放了太多文件,那么读取这个文件夹中的文件会变慢(我记得是这样)

/images 下面存放所有用户上传的所有图片,比如 /images/3d278y322e9jd2.jpg/images/sadhuiwehud.png 这样不好

应该改成 /images/3d27/3d278y322e9jd2.jpg/images/sadh/sadhuiwehud.png 这样,避免在一个文件夹下面存放的文件太多了

在使用 oss、s3、minio 等对象存储的时候,需要注意这一点吗?还是只要一股脑的丢在一个「文件夹」下面就好了,对象存储会帮我处理存储细节来避免各种瓶颈?

阅读 2.8k
5 个回答

被前同事坑过的来说一下(大概整了 几万个文件 约 9TB):

前同事偷懒,不分目录,所有图片、音频、视频文件都在一个目录下
然后要清理的时候,导下来 + OSS 删除,就疯了。。。

1 阿里云提供的工具并不好用
2 接口不提供 通配符搜索,不支持直接分页页码访问
3 网页删除功能,只能一页一页干。BUT 如果是分目录的,可以按目录一次性删除

我最后是写了代码,遍历所有文件,相关信息存到本地数据库
然后在本地 通配符搜索,API 逐个下载(本地没有备份,只能下载),然后逐个删除。

最后重要的事情说三遍:
所有传到 OSS 的文件,一定要本地有备份
所有传到 OSS 的文件,一定要本地有备份
所有传到 OSS 的文件,一定要本地有备份

不影响效率,但你确定后期你们不需要对数据进行处理吗?
如果你们后期要处理数据的话你会发现不提前分层的数据多麻烦

建议最好还是根据业务分一下,而且把你们自己传的固定文件单独一个文件夹,别跟那些用户传的放一起,

实际工作中遇到的,测试上传文件直接用了oss获取上传地址,然后这类数据都留在了oss上,用户上传图片不保存,废弃图片也留着oss了,你可以理解oss里面多少垃圾数据了吧,

个人建议必须分,尤其是重点数据、单独保存

不需要,公司的文件目前全放在一个桶里,已经堆了十几tb了,请求速度还是挺快的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题