AWS S3 многочастная загрузка с необработанными байтами вместо файла - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь создать многокомпонентную загрузку, однако я получаю необработанные данные, а не файл, и в примерах в документации для многочастного запроса требуется Файл, а не данные, например,

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());

Или я застрял в создании временного файла, отправке его на объект запроса и последующем удалении указанного файла?

Спасибо за помощь!

1 Ответ

1 голос
/ 01 марта 2020

Похоже, есть метод withInputStream , и вы всегда можете создать InputStream из байтового массива с помощью ByteArrayInputStream. В сочетании, я думаю, это будет делать то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...