[英]Cloudfront Signed URL with past expiration date is working from my application but, not from browser
在我的 Java 后端中,每次我的前端加載/重新加載時,我都會生成一個新的簽名 URL。 出於測試目的,我對到期日期進行了硬編碼。 到期日期/時間已過,URL 將按預期到期,但我的前端應用程序仍然能夠使用傳遞給它的 URL 顯示 object。
這是在每次刷新時執行的后端代碼:
String signedUrl = CloudFrontUrlSigner.getSignedURLWithCannedPolicy(SignerUtils.Protocol.https,
distributionDomain, new File(privateKeyFilePath), s3ObjectKey, "my-keypair-id",
DateUtils.parseISO8601Date("2021-02-10T14:41:00.000Z"));
在我的前端,我只需將 signedUrl 添加到 Image 標簽:
<Image style={styles.img} source={{ uri: img }} />
如果我將 go 到瀏覽器並手動粘貼我的簽名網址,我可以看到它說訪問被拒絕,因為過期。
我想我會嘗試其他一些事情來查看行為。 我將存儲桶策略更改為完全私有,並嘗試僅從 S3 URL 和瀏覽器中提取圖像,它按預期被阻止,但是從我的應用程序中這是有效的。 然后,我嘗試了相同的方法,除了 Android 游戲商店中我的應用程序的 beta 版本。 在這里,圖像的行為符合預期。 當我阻止公共訪問時,它們會消失,反之亦然。
我最終從手機上卸載了我的應用程序的本地版本,重新安裝它,現在它可以按預期工作,由於過期日期過去,img 沒有出現。 不知道那里發生了什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.