Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在AWS CloudFront中为文件名使用别名_Amazon Web Services_Amazon S3_Amazon Cloudfront - Fatal编程技术网

Amazon web services 在AWS 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文件名 这可以

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文件名


这可以通过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
,从而删除
随机友好文件名及其前面的
/

如果对于任何一个特定图像,
随机友好文件名
始终相同,则这将是一个原始请求触发器。如果即使基本图像哈希相同,随机友好名称也会更改,则需要将其作为查看器请求触发器