【问题标题】:Why am I getting error creating object in Minio?为什么我在 Minio 中创建对象时出错?
【发布时间】:2021-04-06 10:47:44
【问题描述】:

我正在尝试在 Minio 中创建一个对象。有时有效,有时无效。

当我执行时:

minioClient.makeBucket(bucketName); // bucketName es a random unique string

我没有收到错误,但如果询问 Minio 是否存在存储桶:

minioClient.bucketExists(bucketName)

它返回false

之后,如果我尝试再次启动 minioClient.makeBucket(bucketName),因为 minioClient.bucketExists(bucketName) 正在返回 false,那么我会收到此错误(简化):

BucketAlreadyOwnedByYou

所以,当我遇到上一个错误时,我会尝试在 Minio 中创建对象:

minioClient.putObject(bucketName, objectName, is,null,customMetaData,null, null ); // is is an InputStream of the file I want to store in Minio

但是我得到这个错误,说存储桶不存在;

ErrorResponse(code=NoSuchBucket, message=指定的bucket不存在, bucketName=888bf891-064f-4270-b0f0-85514c0eae02, objectName=L7aEmF8Ppk, resource=/888bf891-064f-4270-b0f0-85514c0eae02/L7aEmF8Ppk, requestId =16733C7840E6854D, hostId=null)

任何帮助将不胜感激。

我使用的是 Minio Java API 6.0.13 版

【问题讨论】:

  • 我对 API 或手头的问题一无所知,但是 - 您尝试过 Minio 8.2.0 吗?显然这是最新版本。否则,Minio claims to be read-after-write consistent 所以除非这是一个巨大的错误配置,否则您确实应该能够立即从创建它的同一个客户端看到创建的存储桶。如果您可以使用 8.2.0 重现此问题,我会考虑向 github.com/minio/minio-java 提交问题。

标签: java minio


【解决方案1】:

这不是 MinIO 应有的行为方式。我只在编程错误或设置错误的情况下看到此错误。

当它是一个设置错误时,根本问题是人们创建了 4 个服务器池,每个服务器池都有一个节点,而不是创建 1 个具有 4 个分布式节点的服务器池。这意味着当您的应用程序获得负载平衡时,它有时会访问您创建存储桶的服务器池,有时不会。

另一个原因可能是用作后端的文件系统不一致。例如,具有某些设置的 NFS 可能具有这样的行为。推荐的文件系统是 XFS。

在不了解您的设置的情况下,我无法告诉您它是哪一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    相关资源
    最近更新 更多