代碼段是:
app.get('/api/photo/:S3ObjectKey', photo.get);
並且photo.get()
:
const S3ObjectKey = req.params.S3ObjectKey;
if (!S3ObjectKey) {
console.log("No S3ObjectKey specified");
}
console.log("S3ObjectKey: ", S3ObjectKey);
const canShow = true;
if (canShow) {
const bucket_name = process.env.AWS_S3_BUCKET_NAME;
const data = await S3.getFile(bucket_name, S3ObjectKey);
data.Body.pipe(res);
}
有沒有辦法將 url 的所有其餘部分映射為一個參數,例如:
一個 GET 請求https://mylovelydomain/api/photo/bucketMyPhoto/2020/07/12/home/table.jpeg
將命中 api 端點並S3ObjectKey
具有值bucketMyPhoto/2020/07/12/home/table.jpeg
?
Express 使用path-to-regex:
自定義匹配參數參數可以有一個自定義正則表達式,它會覆蓋默認匹配 ([^/]+)。
在您的路由路徑上,您可以用來*
覆蓋默認匹配的所有內容(請注意,此代碼也會重新處理空請求):
app.get("/api/photos/:S3ObjectKey(*)", /*...*/)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句