Amazon AWS S3如何跟踪Java的下载

时间:2012-09-28 21:58:43

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

我正在寻找一种方法来跟踪存储在亚马逊S3服务中的文件的下载。我下载了API,然后我很迷茫。我只是想知道我必须从API中使用哪些对象和方法才能获得存储在那里的文件的信息。我想跟踪下载,包括发出请求的地址。

感谢您提前。

1 个答案:

答案 0 :(得分:1)

如果您正在谈论在日志记录存储桶中下载文件,我们会使用以下内容:

  • 连接到S3(使用访问/密钥)
  • 打开名为"loggingBucket"
  • 的水桶
  • 获取该存储桶中的每个对象
  • 读入文件并进行处理
  • 处理完每个文件后,我们将其删除

以下是示例代码:

BasicAWSCredentials credentials =
    new BasicAWSCredentials("accessKey", "secretAccessKey");
AmazonS3Client client = new AmazonS3Client(credentials);

for (ObjectListing listing = client.listObjects("loggingBucket");;
        listing = client.listNextBatchOfObjects(listing)) {
    // run through each listing to process it
    for (S3ObjectSummary summary : listing.getObjectSummaries()) {
        String bucketName = summary.getBucketName();
        String fileName = summary.getKey();
        S3Object object = client.getObject(bucketName, fileName);
        S3ObjectInputStream stream = object.getObjectContent();
        BufferedReader reader =
            new BufferedReader(new InputStreamReader(stream));
        ... process the file here writing it locally or something
        // delete the file afterwards
        client.deleteObject(bucketName, fileName);
    }
    // we may need to get more files
    if (!listing.isTruncated()) {
        break;
    }
}

如果这不是您想要的,请编辑您的帖子,以便我们为您提供更好的帮助。