Mule & Java - 字节[]到文件
Mule & Java - Byte[] to File
我得到一个有两个节点的 JSON
:
- 文件名,扩展名 -
String
.
- 内容 - Encoded with Base64 -
String
.
有了这些数据,我想 在我的 Amazon S3
中放置一个对象 ,但它需要一个 File
类型参数。
我也用这个变身byte[]
:
byte[] arrayDecoded = Base64.getDecoder().decode(node2JSON);
我想将 byte[ ] 转换为 java class Java 中的文件 ,然后将其放入 Amazon S3。
如何在不使用目录中的文件的情况下做到这一点?
您可以使用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);
您可以在 Mule 中使用 S3 连接器。
使用 set-payload 和 #[org.apache.commons.io.IOUtils.toByteArray(node2JSON)]
我得到一个有两个节点的 JSON
:
- 文件名,扩展名 -
String
. - 内容 - Encoded with Base64 -
String
.
有了这些数据,我想 在我的 Amazon S3
中放置一个对象 ,但它需要一个 File
类型参数。
我也用这个变身byte[]
:
byte[] arrayDecoded = Base64.getDecoder().decode(node2JSON);
我想将 byte[ ] 转换为 java class Java 中的文件 ,然后将其放入 Amazon S3。
如何在不使用目录中的文件的情况下做到这一点?
您可以使用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);
您可以在 Mule 中使用 S3 连接器。
使用 set-payload 和 #[org.apache.commons.io.IOUtils.toByteArray(node2JSON)]