带有FakeS3的Java amazon s3在putObject上变慢

时间:2014-01-17 14:16:35

标签: java ruby amazon-web-services amazon-s3

对于本地环境,我使用的是fakes3的改进版本(某些ruby实现)。

在java中我有这段代码:

private final AmazonS3Client client;
private final S3Configuration configuration;
private final ObjectMapper objectMapper = new ObjectMapper();
// code code...
final byte[] bytes = objectMapper.writeValueAsBytes(object);
final InputStream input = new ByteArrayInputStream(bytes);
final ObjectMetadata metadata = createJsonMetadata();
metadata.setContentLength(bytes.length);
client.putObject(getBucket(), key, input, metadata);

我想要做的是使用这个fakes3(并且它可以工作),但方法putObject看起来需要3秒才能执行,这对我们的开发环境来说真的很烦人。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我自己找到了答案......

亚马逊客户端在标头中添加了一些Expect: 100-continue,根据rfc2616,客户端正在等待服务器的响应继续进行正文。

大多数服务器都没有实现这一点......我在提交my fork of FakeS3中的54876321f62ebb26d17cd731401784917e52d50d中解决了这个问题