使用AWSSDKJava上传S3
我当前的设置是这样的使用AWSSDKJava上传S3,java,jsp,amazon-web-services,amazon-s3,amazon,Java,Jsp,Amazon Web Services,Amazon S3,Amazon,我当前的设置是这样的 AmazonS3 s3Client = new AmazonS3Client(); InputStream stream = new URL(filePath).openStream(); ObjectMetadata objectMetadata = new ObjectMetadata(); PutObjectRequest putObjectRequest = new PutObjectRequest(amazonFileUploadLocatio
AmazonS3 s3Client = new AmazonS3Client();
InputStream stream = new URL(filePath).openStream();
ObjectMetadata objectMetadata = new ObjectMetadata();
PutObjectRequest putObjectRequest = new PutObjectRequest(amazonFileUploadLocationOriginal, keyName, stream, objectMetadata);
PutObjectResult result = s3Client.putObject(putObjectRequest);
我总是犯这样的错误
java.lang.IllegalStateException: Content has been consumed
我知道这是电话引起的
HttpEntity.getContent()
多次
但我似乎无法调试/找到从doc多次调用它的位置
元数据-对象元数据。这至少指定了内容
正在上载的数据流的长度
我从未使用过URL中的输入流,但您似乎缺少该流的长度。由于您是从文件上载的,因此可以使用PutObjectRequest的构造函数:
File theFile = new File(filePath);
PutObjectRequest putObjectRequest = new PutObjectRequest(amazonFileUploadLocationOriginal, keyName, theFile);
putObjectRequest.withMetadata(objectMetadata);
嗨,你知道怎么计算流的长度吗?我通过输入蒸汽输入的是一个文件URL。