有没有办法在请求者支付标记的Amazon S3存储桶中列出对象?

时间:2012-05-10 14:47:46

标签: java amazon-s3 amazon-web-services jets3t

我正在尝试在aws-publicdatasets存储桶中获取commoncrawl的对象名称列表。我一直在使用Jets3t来createSignedGetUrl,但我不确定我是否可以通过以下方法获取对象列表:

    credentials = new AWSCredentials(accessId, secretId);
    restS3Service = new RestS3Service(credentials);
    restS3Service.setRequesterPaysEnabled(true);
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.HOUR, cal.get(Calendar.HOUR)+1);
    Date expiryDate = new Date(cal.getTimeInMillis());
    String getUrl = restS3Service.createSignedGetUrl(bucketName, null,
            expiryDate, false);

    S3Object obj = signedUrlHandler.getObjectWithSignedUrl(getUrl);

1 个答案:

答案 0 :(得分:2)

Requester Pays功能可用于共享存储桶,并允许由经过身份验证的AWS用户而不是存储桶的所有者支付共享存储桶的使用情况。

因此,如果您要创建签名URL,则没有任何人可以通过签名URL访问该对象。如何通过访问哪个AWS账户或未被S3用户访问时发生的情况来识别它。

我认为这是不可能的。