pre-signed-url · L2

method 決定用途

method 決定用途:一條 URL 只能做一件事

一句話:簽 URL 時填的 method,就框死了這條 URL 允許的動作,而且 method 被簽進簽章、改不了——所以一條 pre-signed URL 只能做一件事。

三種 method、三種用途

method用途典型場景
GET下載 / 讀取給使用者限時下載連結
PUT上傳 / 覆寫讓前端直接把檔案傳進 bucket
HEAD只讀 metadata探測物件存不存在、多大

為什麼「一條只能做一件事」

回想 Level 3 會講的機制:method 是 canonical request 的第一行,會被算進簽章。所以如果對方拿一條簽成 GET 的 URL 去發 PUT 請求,S3 重算簽章時第一行就不一樣、算出的簽章對不上,直接回 SignatureDoesNotMatch

比喻:同一個門牌,你可以簽一張「限時取件單」(GET)、也可以簽一張「限時放件單」(PUT)。拿取件單的人不能拿去放件——門房只認單上寫的動作。

推論:要多種用途就簽多條

同一個物件,如果既要能下載、又要能上傳,就簽兩條 URL:一條 GET、一條 PUT。沒有「一條搞定全部動作」的 pre-signed URL——這正是它「權限收斂、好控管」的體現:每條 URL 的能力都窄而明確。

參考來源