java - Mule 和 Java - 字节 [] 到文件

标签 java file amazon-s3 base64 mule

我得到一个带有两个节点的 JSON:

  1. 带有扩展名文件名 - 字符串
  2. 内容 - 使用 Base64 编码 - 字符串

有了这些数据,我想在我的 Amazon S3放置一个对象,但它需要一个 File 类型参数。

我也用它来转换为byte[]:

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

我想将 java 类 Java 中的 byte[ ] 转换为 File,然后将其放入 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);

关于java - Mule 和 Java - 字节 [] 到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38038340/

相关文章:

java - Spring在方法上的@Profile是一个好习惯吗

java - hibernate 无法在注释方法中指定通用属性标识符

javascript - 使用 Node.js 直接磁盘访问

java - Spring Boot Hibernate 没有事务正在进行

java - 是否有一种干净的方法来检索 AWT 事件分派(dispatch)线程

python - python 列表中的循环不递增

python - python 中 os.rename 的中断

amazon-s3 - 从 Lambda 函数生成预签名 S3 URL 时为 "Access key does not exist"

android - 主机名与证书主题不匹配

amazon-web-services - 批量替换 Terraform 中的文件内容