作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
从技术方面来说,我对 AWS/Lambda 有点陌生,所以我有一个场景,我需要你的帮助。
我有一个每天掉落的文件,我只关心每月最后一天的文件。它们都放到文件在 8 EST 丢弃的同一个存储桶中。
然后我需要将文件从月份的最后一天重命名为静态名称,并将其复制到存储桶中,可以说该文件称为 bill。如果我们在 10 月,我希望有一个名为 bill_september 的前一个文件。
所以我的想法是让一个 cron 工作每天中午启动一个 Lambda 函数来移动一个文件,除了这个月的最后一天。每个月的第一天早上 8 点,我将让它在早上 5 点启动 lambda 作业以复制到新存储桶。
所以问题是
最佳答案
无论使用何种语言,您的 Lambda 函数都将使用 S3-SDK 来处理 S3 存储桶中的文件。使用S3,文件(对象)无法重命名,但您可以做的是复制到另一个名称(对象键),并删除旧文件。
如何在 S3 上复制文件
AmazonS3 s3client = new AmazonS3Client(new ProfileCredentialsProvider());
s3client.copyObject(sourceBucketName, sourceKey,
destinationBucketName, destinationKey);
AmazonS3 s3Client = new AmazonS3Client(new ProfileCredentialsProvider());
try {
s3Client.deleteObject(new DeleteObjectRequest(bucketName, keyName));
} catch (AmazonServiceException ase) {
System.out.println("Caught an AmazonServiceException.");
System.out.println("Error Message: " + ase.getMessage());
System.out.println("HTTP Status Code: " + ase.getStatusCode());
System.out.println("AWS Error Code: " + ase.getErrorCode());
System.out.println("Error Type: " + ase.getErrorType());
System.out.println("Request ID: " + ase.getRequestId());
} catch (AmazonClientException ace) {
System.out.println("Caught an AmazonClientException.");
System.out.println("Error Message: " + ace.getMessage());
}
关于amazon-web-services - 如何在 AWS Lambda 函数上重命名或复制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46553447/
我是一名优秀的程序员,十分优秀!