mino如何上传同名的图片
在MinIO中,如果在同一路径下上传同一张图片(即使用相同的对象名称),新的上传会覆盖现有的对象。
这是因为MinIO和S3的存储机制是基于对象名称的键值对存储,路径实际上是对象名称的一部分。
示例:
假设上传了一张图片到 Work/small/image.jpg
,然后再次上传另一张图片到同样的路径 Work/small/image.jpg
,第二次上传会覆盖第一次上传的文件。
解决方法:
如果希望保存同一张图片的多个版本,可以考虑以下方法:
-
使用唯一的对象名称:
给每个上传的文件使用一个唯一的名称。例如,可以在文件名中添加时间戳或UUID来区分不同的文件版本:import uuid unique_name = f"Work/small/{uuid.uuid4()}_{image_name}" minio_client.fput_object(bucket_name, unique_name, image_path)
-
启用版本控制:
MinIO支持对象版本控制,但默认情况下是关闭的。如果你启用版本控制,即使你上传了同一张图片到相同的路径,MinIO也会为每次上传生成一个新版本,而不是覆盖旧版本。这需要配置MinIO并开启版本控制。
结论
- 默认行为:在相同路径上传相同名称的文件会覆盖现有文件。
- 防止覆盖:可以通过给文件名添加唯一标识或启用版本控制来避免文件被覆盖。
分类:
Minio
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2023-08-09 java-vector-tile | 使用java生成Mapbox矢量图块规范的矢量图块
2023-08-09 Windows此系统上禁止运行脚本
2022-08-09 解决Linux中的ip重启后变化的问题
2022-08-09 vue 项目 页面刷新404问题