相关疑难解决方法(0)

AmazonS3 putObject与InputStream长度的例子

我正在使用Java将文件上传到S3 - 这是我到目前为止所得到的:

AmazonS3 s3 = new AmazonS3Client(new BasicAWSCredentials("XX","YY"));

List<Bucket> buckets = s3.listBuckets();

s3.putObject(new PutObjectRequest(buckets.get(0).getName(), fileName, stream, new ObjectMetadata()));
Run Code Online (Sandbox Code Playgroud)

正在上传文件,但在我未设置内容长度时会引发警告:

com.amazonaws.services.s3.AmazonS3Client putObject: No content length specified for stream > data.  Stream contents will be buffered in memory and could result in out of memory errors.
Run Code Online (Sandbox Code Playgroud)

这是我上传的文件,stream变量是一个InputStream,我可以从中得到这样的字节数组:IOUtils.toByteArray(stream).

所以,当我尝试设置内容长度和MD5(从这里取得)像这样:

// get MD5 base64 hash
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(IOUtils.toByteArray(stream));
byte[] resultByte = messageDigest.digest();
String hashtext = new String(Hex.encodeHex(resultByte));

ObjectMetadata meta = new ObjectMetadata(); …
Run Code Online (Sandbox Code Playgroud)

java google-app-engine md5 inputstream amazon-s3

75
推荐指数
5
解决办法
9万
查看次数

标签 统计

amazon-s3 ×1

google-app-engine ×1

inputstream ×1

java ×1

md5 ×1