vau*_*lle 5 amazon-s3 amazon-web-services aws-sdk
我突然开始看到记录此警告消息,即使基础aws lib的使用或上没有任何变化。我一直在使用aws-java-sdk 1.6.9.1版
没有为流数据指定内容长度。流内容将被缓冲在内存中,并可能导致内存不足错误。
这是文件上传的方式:
client.putObject(bucketName, key, new ByteArrayInputStream(data), new ObjectMetadata())
Run Code Online (Sandbox Code Playgroud)
我怀疑我可能会看到这种情况,因为我没有在ObjectMetadata对象上设置内容长度,但是那是以前的样子,并且没有生成警告。
是否有人对为什么突然出现此警告消息有任何见解?
谢谢!
小智 9
我知道这已经有一段时间了,但我今天不得不处理这个问题,并在文档中找到了这个解释。
上传文件时,AWS S3 Java 客户端将尝试确定正确的内容类型(如果尚未设置)。用户有责任确保在上传流时设置合适的内容类型。如果未提供内容类型并且无法通过文件名确定,则将使用默认内容类型“application/octet-stream”。
有关 Content-Type 标头的更多信息,请参阅 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
就我而言,我必须缓冲流,所以我使用了类似的东西(来自此参考)。
ByteBuffer buffer = new ByteBuffer(...)
...
ObjectMetadata meta = new ObjectMetadata();
meta.setContentLength(buffer.limit());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3797 次 |
| 最近记录: |