CloudFront 多源和缓存行为问题
CloudFront multi origin and cache behaviour issue
我在 CF 中定义了 2 个 S3 桶作为源。
Origin 1 : mybucket1.amazonaws.com
Origin 2 : mybucket2.amazonaws.com/images
我只想分发 mybucket2 中的图片文件夹。
我创建了一个缓存行为,路径模式 /images
指向 Origin2
我尝试使用 url 访问图像
https://lksngfd4w24.cloudfront.net/images/image1.jpg
似乎 CF 正在将缓存行为路径模式附加到 s3 路径。 url 以上会引发如下错误。
<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>
images/images/image1.jpg
</Key>
<RequestId>sdanfladnfaf</RequestId>
<HostId>
medlakfmkamfldaf
</HostId>
</Error>
有没有办法阻止 CF 将路径前缀附加到 S3 URL?。或者是否有任何其他方法可以使用单一分布但具有多个来源来实现这种要求。
根据您的要求,添加带有基本路径的两个源并配置行为,使得
- /* 的默认行为是 Origin 1
- 行为 /images/* 覆盖到
起源 2
注意:在您的 Origin 2 中,它需要有图像文件夹才能工作,这是 CloudFront 行为映射到 S3 来源的限制。
如果您需要进一步的扩展,您可以使用 Edge Lambda 将请求 URL 更改为源中的不同路径。
我在 CF 中定义了 2 个 S3 桶作为源。
Origin 1 : mybucket1.amazonaws.com
Origin 2 : mybucket2.amazonaws.com/images
我只想分发 mybucket2 中的图片文件夹。
我创建了一个缓存行为,路径模式 /images
指向 Origin2
我尝试使用 url 访问图像
https://lksngfd4w24.cloudfront.net/images/image1.jpg
似乎 CF 正在将缓存行为路径模式附加到 s3 路径。 url 以上会引发如下错误。
<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>
images/images/image1.jpg
</Key>
<RequestId>sdanfladnfaf</RequestId>
<HostId>
medlakfmkamfldaf
</HostId>
</Error>
有没有办法阻止 CF 将路径前缀附加到 S3 URL?。或者是否有任何其他方法可以使用单一分布但具有多个来源来实现这种要求。
根据您的要求,添加带有基本路径的两个源并配置行为,使得
- /* 的默认行为是 Origin 1
- 行为 /images/* 覆盖到 起源 2
注意:在您的 Origin 2 中,它需要有图像文件夹才能工作,这是 CloudFront 行为映射到 S3 来源的限制。
如果您需要进一步的扩展,您可以使用 Edge Lambda 将请求 URL 更改为源中的不同路径。