【发布时间】:2019-02-28 19:52:41
【问题描述】:
我正在尝试从 url 下载文件并将它们上传到 AWS 中的 S3 存储桶。到目前为止,我最好的方法是将文件保存到磁盘中的临时文件夹并在将其上传到 S3 存储桶后将其删除。
这就是我的做法:
private File downloadFileFromUrl(String fileUrlToUpload) {
try {
URL url = new URL(fileUrlToUpload);
String tempDir = System.getProperty("java.io.tmpdir");
File file = new File(tempDir + FilenameUtils.getName(url.getPath()));
FileUtils.copyURLToFile(url, file);
return file;
} catch (IOException e) {
LOGGER.error("Could not download file from: {}!", fileUrlToUpload);
return null;
}
}
然后将文件上传到调用downloadFileFromUrl方法的服务中删除。
但是,我正在寻找一种从 url 下载文件并将其直接上传到 S3 存储桶而不将其保存到磁盘的方法。我什至不确定这是否是一种更好的方法,但它似乎比将某些内容保存到磁盘更清洁。
我也对其他方法持开放态度。谢谢!
【问题讨论】:
-
你的文件是不是太大了?
-
没那么大。它们每个大约 100kb。我看到了 AWS 的分段文件上传功能,但我不会上传大文件。
-
那么您不需要创建文件、存储为字节并传递给 S3 存储桶。并查看@Vusal 答案。