我使用aws-java-sdk-s3依赖项在我的spring Boot App中使用S3库。我写了一些演示代码来上传文件到S3桶
upload(bucketName, key, fileName, s3client);
但我的情况是不同的,我从数据库中获取一些数据,我需要将这些数据写入fileName并将此文件上传到S3桶,如何使用AmazonS 3实现这一点。下面是我尝试做的代码。我只是在这里跳过S3客户端创建以使其简单
public void upload(String fileName,String folderName, List<Map<String,Object>> jsonData){
String bucketName= “myBucketName”;
String toFile = folderName + “/” + fileName;
FileOutputStream os = null;
try{
os = new FileOutputStream(fileName);
byte[] strToByte = jsonData.getBytes();
os.write(strToByte);
client.putObject(new PutObjectRequest(bucketName, toFile, new File(fileName)));
}catch(IOException e){
Log.error(e.getMessage);
}finally{
os.close();
}
}
这段代码运行正常,但是在我的本地机器上创建了这个文件的本地副本,并且该文件正在上传到S3存储桶。像这样,我有数百万个文件。我无法将所有这些文件存储在本地系统中。因此,有没有一种方法可以直接将数据写入文件并将其上传到S3而无需存储在任何地方。
1条答案
按热度按时间p8ekf7hl1#
下面是AWS SDK for Java V2代码,使用**byte[]**上传对象: