java - S3 支持的 java.io.File

标签 java amazon-s3

这是我的 S3 支持的 Java 用例 File

File videoFile = new File(OUTPUT_FOLDER + "channel" + channel + "-" + System.currentTimeMillis() + ".mp4");
AWTSequenceEncoder encoder = AWTSequenceEncoder.createSequenceEncoder(videoFile, Long.valueOf(FPS).intValue());
 for (BufferedImage image : bufferedImages) {
      encoder.encodeImage(image);
}

以上只是一个用例,我想知道是否存在 S3 支持的 File可以用作 java.io.File 的管理单元替代品;在上面的示例代码中,想法是替换 videoFile它将直接保存到 S3 或 S3 兼容存储,而不是保存到磁盘。

哪个是通过编译时或运行时注入(inject)的最佳位置?

最佳答案

据我所知,不存在这样的事情。

您能做的最好的事情就是在操作系统级别实现 S3 支持的文件系统。 (例如,使用 s3backer linux man page )如果文件系统具有正确的属性,则使用 java.io.File 的应用程序将不会知道其中的差异。

或者,使用自定义 Java 7+ FileSystem javadoc ,但您必须更改代码才能停止使用 File 并开始使用更现代的 API。

(当然,如果您愿意在 native 代码级别深入研究并修改 JVM,那么一切皆有可能。但是这样您就会引入一大堆其他问题。)

<小时/>

And which is the best place to inject it, through compile-time or run-time?

这不是一个可行的选择。 java.io.File 的重要部分是在 JVM 中以 native 代码实现的,并且不可“可插入”或“可注入(inject)”。

关于java - S3 支持的 java.io.File,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60517797/

相关文章:

java - 如何检查作业是否在 Quartz 框架中运行

java - 这个java程序的输出有点偏差?

java - 在 Android 中返回到上一屏幕?

java - 没有重复元素的字符串排列

amazon-web-services - 同一域上的 CloudFront 和 API Gateway 服务

amazon-s3 - 使用 IHP 上传/访问 S3 上传时出现问题

java - 使用 MS Exchange 服务器从 java 发送邮件,导致连接超时

amazon-web-services - 如何仅使用 aws codebuild 服务将 github 代码复制到 s3 存储桶?

node.js - 如何确定 S3.getObject() 中的数据类型

ruby - 如何在 s3 上使用 ruby​​ aws-sdk 创建目录结构?