[英]Amazon S3 secure URL at the bucket level
我希望能夠為“已簽名”的客戶端提供URL,因此僅與24小時相關(例如)。 但是,我不想為生成的每個URL調用S3:
AWS::S3::S3Object.new(bucket, name).url_for(:read, :secure => true, :expires => expires_in).to_s
相反,我想自己生成URL(我有文件名和存儲桶鏈接,我可以自己構建)。
但是,我想在桶級別對URL進行簽名(例如,對於給定存儲桶中的所有文件,每天一次)。 這可能嗎?
創建預簽名URL時,完全在本地完成。 你可以“自己動手”,但使用SDK要容易得多,並沒有實際的差異。 請注意S3 API上沒有“簽名”操作。
但是,您無法在“桶級別”進行簽名,因為每個對象都會檢查簽名。 我認為簽署一個整桶是不可行的。
對不起我沒有這個只有Java的ruby代碼...
但是你將無法獲得整個存儲桶的預分配網址,只能獲得每個文件。
這是我創建的功能。 這將為您打印一切。 這個過程有意義嗎?
private static URI GetURL(AmazonS3Client amazonS3Client, S3ObjectSummary s3ObjectSummary) throws URISyntaxException {
return amazonS3Client.generatePresignedUrl(
new GeneratePresignedUrlRequest(s3ObjectSummary.getBucketName(), s3ObjectSummary.getKey())
.withMethod(HttpMethod.GET)
.withExpiration(GetExperation())).toURI();
}
public static void run(String accessKey, String secretKey, String bucketName) {
AmazonS3Client amazonS3Client = new AmazonS3Client(new BasicAWSCredentials(accessKey, secretKey));
amazonS3Client.listObjects(bucketName)
.getObjectSummaries()
.stream()
.forEach(s3ObjectSummary
-> System.out.println(GetURL(amazonS3Client, s3ObjectSummary).toString()));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.