我正在尝试创建分段上传,但是我收到原始数据,而不是文件,并且在文档中的示例中,分段请求需要文件,而不是数据,例如
UploadPartRequest uploadRequest = new UploadPartRequest()
.withBucketName(bucketName)
.withKey(key)
.withUploadId(initResponse.getUploadId())
.withPartNumber(part) // parts start with 1
.withFileOffset(filePosition)
.withFile(filePath.toFile())
.withPartSize(partSize);
UploadPartResult uploadPartResult = amazonS3.uploadPart(uploadRequest);
partETags.add(uploadPartResult.getPartETag());
有什么方法可以将原始再见放入 UploadPartRquest 中吗?类似的东西
byte[] data = getData();
UploadPartRequest uploadRequest = new UploadPartRequest()
.withBucketName(bucketName)
.withKey(key)
.withUploadId(initResponse.getUploadId())
.withPartNumber(part) // parts start with 1
.withFileOffset(filePosition)
.withData(data)
.withPartSize(partSize);
UploadPartResult uploadPartResult = amazonS3.uploadPart(uploadRequest);
partETags.add(uploadPartResult.getPartETag());
或者我是否坚持创建临时文件,将其发送到请求对象,然后删除所述文件?
感谢您的帮助!
最佳答案
看起来有 a withInputStream
method并且您始终可以通过 ByteArrayInputStream
从字节数组创建 InputStream
。结合起来,我认为这会做你想要的。
关于java - 使用原始字节而不是文件的AWS S3分段上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60470379/