簡體   English   中英

Cloudfront 簽名的 URL 過期日期在我的應用程序中有效,但在瀏覽器中無效

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM