Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从AmazonEBS读取文件_Java_Amazon Ec2_Amazon Web Services_Amazon Ebs_Servlet 3.0 - Fatal编程技术网

Java 从AmazonEBS读取文件

Java 从AmazonEBS读取文件,java,amazon-ec2,amazon-web-services,amazon-ebs,servlet-3.0,Java,Amazon Ec2,Amazon Web Services,Amazon Ebs,Servlet 3.0,我想从我在Amazon Elastic block storage上创建的一个EBS卷下载一个文件。通常建议使用ServletContext#getResource()及其对应的ServletContext#getResourceAsStream() 但在这种情况下,以下代码是否可取 InputStream in=newfileinputstream(新文件(文件夹路径在亚马逊的EBS上+“/”+文件夹+“/”+文件名))在属性文件中有文件路径,使用绝对路径更好,原因如下: ec2卷的装入点可

我想从我在Amazon Elastic block storage上创建的一个EBS卷下载一个文件。通常建议使用
ServletContext#getResource()
及其对应的
ServletContext#getResourceAsStream()

但在这种情况下,以下代码是否可取


InputStream in=newfileinputstream(新文件(文件夹路径在亚马逊的EBS上+“/”+文件夹+“/”+文件名))

在属性文件中有文件路径,使用绝对路径更好,原因如下:

  • ec2卷的装入点可能会发生变化,在类路径中有装入点,修改装入点比修改属性文件中的条目要困难得多
  • 通常,属性文件等资源是使用getResource()获取的,如果还有其他IO(如存储照片、office文档),那么明智的做法是使用绝对路径进行访问

如果文件(资源)经常被应用程序使用,并且仅由应用程序使用,则还取决于用例,然后您可以将其放在类路径中,并将其与存档一起打包。

将文件路径放在属性文件中,使用绝对路径更好,原因如下:

  • ec2卷的装入点可能会发生变化,在类路径中有装入点,修改装入点比修改属性文件中的条目要困难得多
  • 通常,属性文件等资源是使用getResource()获取的,如果还有其他IO(如存储照片、office文档),那么明智的做法是使用绝对路径进行访问

如果文件(资源)经常被应用程序使用,并且仅被应用程序使用,则还取决于用例,然后您可以将其保存在类路径中,并将其与存档一起打包。

很难说这是什么问题

如果您询问使用getServletContext()还是使用新文件(路径\u到\u EBS…)更好,那么这完全取决于您正在运行的内容。如果您正在运行一个独立的java应用程序,并通过套接字请求文件,那么您将使用后者(您知道在哪里查找的文件上的FileInputStream)。如果您正在运行web服务器(例如Tomcat),并且将使用web客户端下载文件,那么您通常会使用getServletContext(),因为它是web服务器基础结构的一部分

这两种方法都可以获得文件的句柄,但是getServletContext()将引用Tomcat工作区下的应用程序位置。您是否打算从Tomcat的工作区开始,将您的EBS卷安装到您可以轻松访问的位置


如果您正在运行web服务器,并且它允许您使用新的FileInputStream(新文件(MY_EBS_LOCATION+“/”+…)直接访问EBS卷中的文件,那么请尽一切努力使用它-清晰且简单。

很难说出这里的问题是什么

如果您询问使用getServletContext()还是使用新文件(路径\u到\u EBS…)更好,那么这完全取决于您正在运行的内容。如果您正在运行一个独立的java应用程序,并通过套接字请求文件,那么您将使用后者(您知道在哪里查找的文件上的FileInputStream)。如果您正在运行web服务器(例如Tomcat),并且将使用web客户端下载文件,那么您通常会使用getServletContext(),因为它是web服务器基础结构的一部分

这两种方法都可以获得文件的句柄,但是getServletContext()将引用Tomcat工作区下的应用程序位置。您是否打算从Tomcat的工作区开始,将您的EBS卷安装到您可以轻松访问的位置

如果您正在运行web服务器,并且它允许您使用新的FileInputStream(新文件(MY_EBS_LOCATION+“/”+…)直接访问EBS卷中的文件,那么请尽一切可能使用它-清晰且简单