当前位置: 首页 > 知识库问答 >
问题:

S3 Bucket策略:在s3client期间:“org.xml.sax.SAXParseException:文件过早结束”。listObjects()

樊杰
2023-03-14

试图将对listObjects操作的访问添加到bucket策略以从s3读取,收到错误:

错误操作不适用于语句中的任何资源

{
           "Sid": "AllowListingOfUserFolder",
           "Action": ["s3:ListBucket"],
           "Effect": "Allow",
           "Principal":{"AWS":"arn:aws:iam::<ID>:user/my_user"},
           "Resource": "arn:aws:s3:::outputbucket/*",
           "Condition":{"StringLike":{"s3:prefix":["folder/*"]}}

        }

政策有什么问题?

UPD完全删除资源和条件中的“/*”,并收到一个错误:

组织。xml。萨克斯。SAXParseExcepthtml" target="_blank">ion:文件过早结束。

           {
               "Sid": "AllowListingOfUserFolder",
               "Action": ["s3:ListBucket"],
               "Effect": "Allow",
               "Principal":{"AWS":"arn:aws:iam::<ID>:user/my_user"},
               "Resource": "arn:aws:s3:::outputbucket"
            }

此代码失败:

ObjectListing objects = s3Client.listObjects(outputBucketName, outputKeyPrefix);

请求处理失败;嵌套异常为com。amazonaws。SdkClientException:无法使用处理程序类com解析XML文档。amazonaws。服务。s3.型号。使改变XmlResponsesXParser$ListBucketHandler]带根本原因

组织。xml。萨克斯。SAXParseException:文件过早结束。在org。阿帕奇。xerces。util。ErrorHandlerWrapper。createSAXParseException(未知源)~[xercesImpl-2.9.1.jar:na]位于org。阿帕奇。xerces。util。ErrorHandlerWrapper。fatalError(未知源)~[xercesImpl-2.9.1.jar:na]位于org。阿帕奇。xerces。impl。XMLErrorReporter。reportError(未知源)~[xercesImpl-2.9.1.jar:na]位于org。阿帕奇。xerces。impl。XMLErrorReporter。reportError(未知源)~[xercesImpl-2.9.1.jar:na]位于org。阿帕奇。xerces。impl。XMLErrorReporter。reportError(未知源)~[xercesImpl-2.9.1.jar:na]位于org。阿帕奇。xerces。impl。XMLVersionDetector。determineDocVersion(未知源)~[xercesImpl-2.9.1.jar:na]位于org。阿帕奇。xerces。解析器。XML11配置。在org上解析(未知源)~(xercesImpl-2.9.1.jar:na)。阿帕奇。xerces。解析器。XML11配置。在org上解析(未知源)~(xercesImpl-2.9.1.jar:na)。阿帕奇。xerces。解析器。XMLParser。在org上解析(未知源)~(xercesImpl-2.9.1.jar:na)。阿帕奇。xerces。解析器。抽象SAXSparser。在com上解析(未知源)~(xercesImpl-2.9.1.jar:na)。amazonaws。服务。s3.型号。使改变XmlResponsesXParser。com上的parseXmlInputStream(XmlResponsesSaxParser.java:142)~(aws-java-sdk-s3-1.11.125.jar:na)。amazonaws。服务。s3.型号。使改变XmlResponsesXParser。parseListBucketObjectsResponse(xmlResponsesExparser.java:298)~[aws-java-sdk-s3-1.11.125.jar:na]位于com。amazonaws。服务。s3.型号。使改变解组器$ListObjectsUnmarshaller。解组器(Unmarshallers.java:70)~[aws-java-sdk-s3-1.11.125.jar:na]位于com。amazonaws。服务。s3.型号。使改变解组器$ListObjectsUnmarshaller。解组器(Unmarshallers.java:59)~[aws-java-sdk-s3-1.11.125.jar:na]位于com。amazonaws。服务。s3.内部。S3XmlResponseHandler。handle(S3XmlResponseHandler.java:62)~[aws-java-sdk-s3-1.11.125.jar:na]。amazonaws。服务。s3.内部。S3XmlResponseHandler。handle(S3XmlResponseHandler.java:31)~[aws-java-sdk-s3-1.11.125.jar:na]。amazonaws。http。回答AwsResponseHandlerAdapter。handle(awsresponsehandleradopter.java:70)~[aws-java-sdk-core-1.11.125.jar:na]。amazonaws。http。AmazonHttpClient$RequestExecutor。handleResponse(AmazonHttpClient.java:1503)~[aws-java-sdk-core-1.11.125.jar:na]。amazonaws。http。AmazonHttpClient$RequestExecutor。executeOneRequest(AmazonHttpClient.java:1226)~[aws-java-sdk-core-1.11.125.jar:na]位于com。amazonaws。http。AmazonHttpClient$RequestExecutor。executeHelper(AmazonHttpClient.java:1030)~[aws-java-sdk-core-1.11.125.jar:na]位于com。amazonaws。http。AmazonHttpClient$RequestExecutor。doExecute(AmazonHttpClient.java:742)~[aws-java-sdk-core-1.11.125.jar:na]位于com。amazonaws。http。AmazonHttpClient$RequestExecutor。executeWithTimer(AmazonHttpClient.java:716)~[aws-java-sdk-core-1.11.125.jar:na]位于com。amazonaws。http。AmazonHttpClient$RequestExecutor。在com上执行(AmazonHttpClient.java:699)~[aws-java-sdk-core-1.11.125.jar:na]。amazonaws。http。AmazonHttpClient$RequestExecutor。在com上访问500美元(AmazonHttpClient.java:667)~[aws-java-sdk-core-1.11.125.jar:na]。amazonaws。http。AmazonHttpClient$RequestExecutionBuilderImpl。在com上执行(AmazonHttpClient.java:649)~[aws-java-sdk-core-1.11.125.jar:na]。amazonaws。http。AmazonHttpClient。在com上执行(AmazonHttpClient.java:513)~[aws-java-sdk-core-1.11.125.jar:na]。amazonaws。服务。s3.AmazonS3客户。在com上调用(AmazonS3Client.java:4169)~[aws-java-sdk-s3-1.11.125.jar:na]。amazonaws。服务。s3.AmazonS3客户。在com上调用(AmazonS3Client.java:4116)~(aws-java-sdk-s3-1.11.125.jar:na)。amazonaws。服务。s3.AmazonS3客户。在com上调用(AmazonS3Client.java:4110)~(aws-java-sdk-s3-1.11.125.jar:na)。amazonaws。服务。s3.AmazonS3客户。com上的listObjects(AmazonS3Client.java:819)~[aws-java-sdk-s3-1.11.125.jar:na]。amazonaws。服务。s3.AmazonS3客户。listObjects(AmazonS3Client.java:797)~[aws-java-sdk-s3-1.11.125.jar:na]

共有1个答案

扈沛
2023-03-14

回答我自己的问题。如中所述https://forums.aws.amazon.com/thread.jspa?threadID=160117问题是bucketName。我使用了bucketName文件夹的路径,但只使用了bucketName

>

ListObjectsRequest listObjectsRequest=new ListObjectsRequest(). with BucketName("com.example.bucket名称/"). with Prefix("文件夹/")

 类似资料:
  • 尝试将对listObjects操作的访问添加到存储桶策略以从s3获取读取,收到错误: 错误操作不适用于语句中的任何资源 政策出了什么问题?

  • 问题内容: 我收到非常奇怪的“文件过早结束”。我们的一台服务器上最近几天的异常。在 相同的 XML配置在另一台服务器上的罚款。我们在这两台服务器上都使用Tomcat 5.0.28。这段代码已经使用了7年以上,直到最近的服务器崩溃后,我们才在其中一台服务器上遇到此问题。XML和Java解析代码没有变化。:( 我唯一看到的区别是Java版本- 问题服务器 Java版本“ 1.6.0_16” Java

  • 我对“文件过早结束”感到非常奇怪。我们的一个服务器上最近几天的异常。同样的配置XML在另一台服务器上也能正常工作。我们在这两个服务器上都使用Tomcat5.0.28。这个代码已经工作了很长时间(7+年),只是在最近的服务器崩溃后,我们在其中一个服务器上面临这个问题。XML和Java解析代码没有变化。:( 我能看到的唯一区别是在Java版本中-

  • 我正试图基于封送的xml和xslt以及一些问题生成outFile。 这段代码从对象生成xml流。 此方法生成以xml作为输入的输出文件 运行代码时,我得到TransformerExcema: 输入xml和xslt都会在在线工具中产生预期的输出-http://www.utilities-online.info/xsltransformation. 这段代码在控制台中提供了正确的xml文件。 在这个问

  • 我目前有以下文件。 http://www.cse.unsw.edu.au/~cs9321/14s1/assignments/musicDb.xml 我的类。 } 我在另一个类中创建了一个对象并调用,但我一直收到上述错误。 有人知道问题出在哪里吗? 谢谢你的帮助。

  • 我正在用Apache CXF3.16开发一个SOAP客户机。当我执行我的客户机时,wildfly服务器会出现文件过早结束的情况。我需要找出这个截断发生在哪里,所以我使用了fiddler并设置了一个代理来捕捉请求,但是突然错误消失了。谁能解释发生了什么,我应该做什么来解决这个问题与CXF? 没有小提琴手: ID:1地址:http://localhost:8080/iam/im/tews6/sbxd编