Amazon web services 在AWS CloudFront中为文件名使用别名
CloudFront存储调整大小的图像版本,并向公众提供这些图像。每个图像都以这种严格的方式存储和提供:Amazon web services 在AWS CloudFront中为文件名使用别名,amazon-web-services,amazon-s3,amazon-cloudfront,Amazon Web Services,Amazon S3,Amazon Cloudfront,CloudFront存储调整大小的图像版本,并向公众提供这些图像。每个图像都以这种严格的方式存储和提供: /content/resized/2x/md5\u hash\u of_image.jpg 唯一的变化是图像的2x和md5\u散列 此外,包含访问密钥的查询字符串将附加到请求中 但是,我希望以这种格式提供图像: /images/2x/md5\u-hash\u-of\u-image/random\u-friendly\u-filename.jpg 服务器将动态生成随机\u友好\u文件名 这可以
/content/resized/2x/md5\u hash\u of_image.jpg
唯一的变化是图像的2x
和md5\u散列
此外,包含访问密钥的查询字符串将附加到请求中
但是,我希望以这种格式提供图像:
/images/2x/md5\u-hash\u-of\u-image/random\u-friendly\u-filename.jpg
服务器将动态生成随机\u友好\u文件名
这可以通过CloudFront实现吗,例如通过自定义行为?CloudFront没有这方面的本机功能,但是可以在CloudFront中通过帮助来实现,帮助允许使用JavaScript在飞行中操纵CloudFront请求(和响应)
'use strict';
exports.handler = (event, context, callback) => {
const request = event.Records[0].cf.request;
request.uri = request.uri.replace(/\/[^\/]+\.jpg$/,'.jpg');
return callback(null, request);
};
这将获取uri(路径),并将最终的/random-friendly filename.jpg
替换为.jpg
,从而删除随机友好文件名及其前面的/
如果对于任何一个特定图像,随机友好文件名
始终相同,则这将是一个原始请求触发器。如果即使基本图像哈希相同,随机友好名称也会更改,那么您需要将其作为查看器请求触发器。CloudFront没有此方面的本机功能,但可以在CloudFront中通过帮助完成,该帮助允许使用JavaScript在飞行中操纵CloudFront请求(和响应)
'use strict';
exports.handler = (event, context, callback) => {
const request = event.Records[0].cf.request;
request.uri = request.uri.replace(/\/[^\/]+\.jpg$/,'.jpg');
return callback(null, request);
};
这将获取uri(路径),并将最终的/random-friendly filename.jpg
替换为.jpg
,从而删除随机友好文件名及其前面的/
如果对于任何一个特定图像,随机友好文件名
始终相同,则这将是一个原始请求触发器。如果即使基本图像哈希相同,随机友好名称也会更改,则需要将其作为查看器请求触发器