尝试删除对象时,Minio S3不响应/挂起

时间:2018-11-08 16:17:07

标签: amazon-web-services amazon-s3 minio

预期行为

我正在使用适用于Java的AWS开发工具包通过AmazonS3#putObject将文件/ InputStream(> 5MB)上传到本地微型服务器。 上传完成后,我想查询上传对象的某些元数据。因此,首先我用bucketname和key调用AmazonS3#getObject,这给了我S3Object。然后调用S3Object#getObjectMetaData给我适当的ObjectMetadata。现在,我调用ObjectMetadata#getContentLength来查询对象的大小。之后,我尝试通过AmazonS3#deleteObject删除对象。该对象应在短时间内删除。

当前行为

实际上传正常。但是,当调用AmazonS3#deleteObject时(在上述过程之后),服务器不再响应。客户端将继续重新发送删除请求,直到超时为止。这似乎与服务器上可能的打开文件句柄有关。还有一种在AWS S3 API中查询元数据的方法。您可以使用AmazonS3#getObjectMetadata,而无需先使用AmazonS3#getObject。奇怪的是,使用此选项不会导致描述的挂起,并且该对象被删除而没有任何相关的延迟。

可能的解决方案

如上所述,您可以使用AmazonS3#getObjectMetadata来避免该问题,但是我认为这不应该是一般的解决方案。 服务器上的打开文件句柄可能存在问题,但这只是一个建议。我观察到的另一件事是,问题很大程度上取决于上传数据的大小。大小最大约为500000字节,一切正常。问题开始于大约554000字节。 服务器可能无法处理传出的放置请求的数量,这可能也有问题。

环境

  • 使用的版本(minio version): 版本:2018-11-06T01:01:02Z 发布标签:RELEASE.2018-11-06T01-01-02Z 提交ID:eb1f9c9916cdd2d1031b76dfc4e539fd643de6bc

  • 操作系统和版本(uname -a): macOS Sierra版本10.12.3

0 个答案:

没有答案