Загрузка файла (putobject) с использованием AWS-SDK с входным потоком, полученным по запросу MutlipartJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Загрузка файла (putobject) с использованием AWS-SDK с входным потоком, полученным по запросу Mutlipart

Сообщение Anonymous »

Я использую AWS-SDK для работы с корпоративным хранилищем S3. Моя конфигурация клиента S3 выглядит следующим образом: < /p>

Код: Выделить всё

@Bean
public S3Client s3Client() {
return S3Client.builder()
.endpointOverride(URI.create(properties.getS3().getEndpoint()))
.region(Region.of(properties.getS3().getRegion()))
.credentialsProvider(StaticCredentialsProvider.create(
AwsBasicCredentials.create(
properties.getS3().getAccessKey(),
properties.getS3().getSecretKey()
)
))
.serviceConfiguration(builder ->
builder.chunkedEncodingEnabled(properties.getS3().getChunkedEncodingEnabled()))
.forcePathStyle(properties.getS3().getPathStyle())
.build();
}
Настройка загруженной загрузки является намеренной, потому что мой поставщик хранилища не полностью его поддерживает (т.е. я отключен). Но при загрузке я получаю ошибку, подобную:

Содержание запроса имеет меньше байтов, чем указанная длина содержимого: n байтов. RequestBody.frominputStream говорит, что автоматическая упаковка происходит, если исходный поток не поддерживает Mark/Reset, то я получаю ошибку при попытке создать BufferedInputStream :

java.io.io. Код выглядит так: < /p>

Код: Выделить всё

    try (InputStream is = resource.getInputStream()){
PutObjectResponse putObjectResponse = s3Client.putObject(PutObjectRequest.builder()
.bucket(properties.getS3().getBucketName())
.key(resource.getFilename())
.build(), RequestBody.fromInputStream(is, resource.contentLength()));
return S3SavedFile.builder()
.key(resource.getFilename())
.size(putObjectResponse.size())
.build();
} catch (Exception e) {
throw e;
}
, где ресурс является multipartfileresource и resource.getInputStream () returns wannelinptream .
Скажите, пожалуйста, если это возможно, загрузить файл в S3, используя inputstream formit letplet?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... d-from-a-m
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»