mino如何上传同名的图片

在MinIO中,如果在同一路径下上传同一张图片(即使用相同的对象名称),新的上传会覆盖现有的对象。

这是因为MinIO和S3的存储机制是基于对象名称的键值对存储,路径实际上是对象名称的一部分。

示例:

假设上传了一张图片到 Work/small/image.jpg,然后再次上传另一张图片到同样的路径 Work/small/image.jpg,第二次上传会覆盖第一次上传的文件。

解决方法:

如果希望保存同一张图片的多个版本,可以考虑以下方法:

  1. 使用唯一的对象名称
    给每个上传的文件使用一个唯一的名称。例如,可以在文件名中添加时间戳或UUID来区分不同的文件版本:

    import uuid
    
    unique_name = f"Work/small/{uuid.uuid4()}_{image_name}"
    minio_client.fput_object(bucket_name, unique_name, image_path)
    
  2. 启用版本控制
    MinIO支持对象版本控制,但默认情况下是关闭的。如果你启用版本控制,即使你上传了同一张图片到相同的路径,MinIO也会为每次上传生成一个新版本,而不是覆盖旧版本。这需要配置MinIO并开启版本控制。

结论

  • 默认行为:在相同路径上传相同名称的文件会覆盖现有文件。
  • 防止覆盖:可以通过给文件名添加唯一标识或启用版本控制来避免文件被覆盖。
posted @   槑孒  阅读(388)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用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问题
点击右上角即可分享
微信分享提示