这是对我错误的解释。我已经注册了两个用户的A,B在桉树(开源).我在用户A的帐户中使用Jets3t API创建了一个存储桶Jets3t,并将读取权限授予用户B(使用"CanonicalGrantee“接口)。在使用A的凭据列出访问控制列表时,我获得了A的FULL_CONTROL,B的读取。但是当我试图使用B的凭据访问桶B1信息时,我得到了以下错误
线程“主”org.jets3t.service.S3Service.listObjects(S3Service.java:1410)中的异常:在test.ObjectPermission.main(ObjectPermission.java:40)的org.jets3t.service.S3ServiceException上,无法用无效的桶: null执行操作listObjects
有问题的代码是S3Bucket publicBucket =s3Service.getBucket("B1");
在这里,B1属于用户A。在上面的代码中,s3service返回一个空值。我知道s3service只检索在B‘凭证下创建的信息。
我不知道如何解决这个问题,并使用Jets3t API访问共享桶
发布于 2012-10-16 05:18:42
您所使用的方法是在帐户B的存储桶列表中搜索帐户A的桶B1,因此始终找不到帐户B中的桶并返回null。所以你必须用另一种方式检查它。如果isBucketAccessible()返回true,则可以通过对Bucket请求头进行检查,以便为帐户B服务对象执行isBucketAccessible(),这意味着桶是可访问的。
我百分之百肯定会成功的:)
https://stackoverflow.com/questions/12892972
复制相似问题