我在Java Spring应用程序中使用AmazonS3。我正在使用固定的到期日期时间,即今天的 今天+ 1天,下午12:00:00 。
对于相同的文件名和有效期, generatePresignedUrl 方法将生成相同的URL。 这样,浏览器可以使用缓存中的图像。
但是,这仅在 Windows 上有效。在 mac OS 上,即使文件名和有效期相同,此方法也会为每个新请求生成不同的url。
这是我的代码:
public String generateSignedUrl(String fileName) {
LocalDateTime localDate = LocalDateTime.now().plusDays(1).withHour(12).withMinute(0).withSecond(0);
Date expirationDate = Date.from(localDate.atZone(ZoneId.systemDefault()).toInstant());
GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, fileName)
.withMethod(HttpMethod.GET)
.withExpiration(expirationDate);
URL url = s3client.generatePresignedUrl(generatePresignedUrlRequest);
return url.toString();
}
有人知道为什么会这样吗?