用Java从AmazonS3读取文件的最佳方法
我得到了一个S3文件的URL,格式如下: s3n://xxxxxxxxxxxxxxxxxxxx:XXXXXXXXXXXXXXXXXXXXXXXXXXXXX@bucket/foo/bar.json 从这个位置提取json文件的最佳方法是什么 我希望将URL视为一个不透明的值,并避免对其进行解析,这样它就可以在不需要更改底层代码的情况下进行更改 当我试图将该值传递给java.net.URL时,它会抛出一个格式错误的异常,因为它无法识别S3协议用Java从AmazonS3读取文件的最佳方法,java,json,amazon-web-services,amazon-s3,Java,Json,Amazon Web Services,Amazon S3,我得到了一个S3文件的URL,格式如下: s3n://xxxxxxxxxxxxxxxxxxxx:XXXXXXXXXXXXXXXXXXXXXXXXXXXXX@bucket/foo/bar.json 从这个位置提取json文件的最佳方法是什么 我希望将URL视为一个不透明的值,并避免对其进行解析,这样它就可以在不需要更改底层代码的情况下进行更改 当我试图将该值传递给java.net.URL时,它会抛出一个格式错误的异常,因为它无法识别S3协议 谢谢大家! 在amazons3中,您首先需要对给定的bu
谢谢大家! 在
amazons3
中,您首先需要对给定的bucket进行身份验证,然后提取所需对象的InputStream
,然后您就可以完成您的需要了
要通过获取对象或通过URL访问对象,需要提供对该对象的公共访问。请参见您可以实现支持s3n协议的URLStreamHandler 的Java文档解释了如何发现URLStreamHandle 在URLStreamHandler中,您需要进行url解析,以将其映射到s3客户端的需要
但是任何使用它的代码都不必依赖于任何S3相关元素,如果需要,应该与其他存储一起使用URLStreamHandler。有一些原因,你不能使用aws java sdk中的S3客户端?S3客户端不能使用url格式,我没有将其分解成碎片,如果可能的话,我希望避免这样做。