2016-06-26 1 views
0

Я получаю JSON с двумя узлами:Mule & Java - Byte [] Файл

  1. Имя файла с расширением - String.
  2. - Зашифровано с базой64 - String.

С этими данными я хочу поместить объект в моем Amazon S3 но это требует параметра в File типа.

Я использую это преобразовать в byte[] тоже:

byte[] arrayDecoded = Base64.getDecoder().decode(node2JSON); 

Я хочу, чтобы преобразовать байт [] Файл в Java класс Java, а затем положить его на Amazon S3.

Как это сделать без использования файлов из каталога?

ответ

1

Вы можете использовать метод AmazonS3#putObject(String bucketName, String key, InputStream input,ObjectMetadata metadata) для загрузки данных без записи файла в файловую систему.
Укажите длину файла в метаданных и используйте ByteArrayInputStream для преобразования вашего байтового массива во входной поток.

ObjectMetadata objectMetadata = new ObjectMetadata(); 
objectMetadata.setContentLength(data.length); 
amazonS3.putObject(bucketName, filename, new ByteArrayInputStream(data), objectMetadata); 
+0

Спасибо, что было, что мне нужно! – gtx911

0

Вы можете использовать разъем S3 в Муле.

Используйте набор-полезной нагрузки с # [org.apache.commons.io.IOUtils.toByteArray (node2JSON)]