注册
登录
新闻动态
其他科技
返回
Cloudflare Images 有很多问题
作者:
糖果
发布时间:
2024-04-14 07:49:37 (3天前)
来源:
cloudflare-images-has-a-lot-of-issues/
> 标签:网络,云耀斑 我是各种 Cloudflare 产品的忠实粉丝,并且一次又一次地对 CF 提供的创新和解决方案印象深刻。因此,这篇文章让我很痛苦,因为我通常不会对 CF 发表任何负面评论,但是在生产几个月后,CF Images 团队严重缺乏任何有意义的答复来解决任何这些问题(你不会在任何链接的社区帖子中找到一个官方回复),我发现有必要告知 CF Images 的某些方面,坦率地说,我发现这些方面既令人惊讶、令人担忧又令人失望。问题得到解决后,我将更新此列表。 # 问题 ### 1. CF 上下文中令人难以置信的混乱和荒谬的定价 链接:“[Cloudflare 图像现在可供所有人使用](https://blog.cloudflare.com/announcing-cloudflare-images/#eliminate-egress-costs "Cloudflare 图像现在可供所有人使用")”、“[AWS 的 Eggious Egress](https://blog.cloudflare.com/aws-egregious-egress/ "AWS 的 Eggious Egress")”、“[带宽联盟](https://www.cloudflare.com/zh-cn/bandwidth-alliance/ "带宽联盟")”、[社区帖子](https://community.cloudflare.com/t/am-i-charged-for-cloudflare-images-if-the-image-would-otherwise-be-cached-by-cf-caching-rules/305727 "社区帖子") CF 在创建服务方面有着良好的记录,这些服务不仅非常有效,而且具有极高的成本效益。此外,他们似乎肩负着与“带宽联盟”一起消除出口费用的使命,同时还直接向 AWS 声明他们的“异常出口”,并且在 CF Images 的产品公告中他们写道(强调我的): 出口成本是从存储提供商获取数据的成本。最常见的情况是当您从存储中提供图像时,您需要为传输的位付费。并且每次显示相同的图像时,您最终都要付费。 关键是,你CF图片都为此付出同样的图像显示每单的时间,作为计价明确规定字面上2段后(重点煤矿): 您为每 100,000 张存储图像支付 5 美元/月和每 100,000 张交付图像支付 1 美元 雪上加霜的是,人们只能假设访问 CDN 的请求也很重要,因为它仍然是“已交付的图像”,并且他们没有提到事实并非如此。不仅如此,但因为你支付每幅图像,而不是带宽,你会为此付出更多的小图像(如50KB = $每GB 0.20)比你会使用AWS。 ### 2. 无法追踪已经提供了多少图片 链接:[社区帖子 1(由我)](https://community.cloudflare.com/t/seeing-how-many-images-has-been-served-so-far/322725 "社区帖子 1(由我)")、[社区帖子 2](https://community.cloudflare.com/t/where-can-we-follow-the-consumption-of-image-requests/326868 "社区帖子 2")、[社区帖子 3](https://community.cloudflare.com/t/how-to-view-cloudflare-images-delivered-usage/328994 "社区帖子 3") 您可以清楚地了解已上传的图像数量,但与例如不同。CF Workers,除了发票到达时的行项目之外,没有办法知道已经提出了多少请求。你有一个工具来获得一些这方面的信息,在一定的阈值被设置使用的通知/警报,但如果你想细粒度信息这很快就变成垃圾。 ### 3.无法找回原图 链接:[社区帖子](https://community.cloudflare.com/t/cloudflare-images-retrieve-the-original-file-upload/317897 "社区帖子"),“[AWS 的 Eggious Egress](https://blog.cloudflare.com/aws-egregious-egress/ "AWS 的 Eggious Egress")” 标题说明了一切。目前根本无法检索原始和未修改的文件,这意味着您也无法根据需要迁移到另一个平台。在上面链接的 CF 帖子“AWS 的异常出口”中,他们写道: 我们可以合理地为 AWS 的出口定价提出的唯一理由是:将客户锁定在他们的云中,并使获取客户数据的成本高得令人望而却步。以客户为先就这么多了。 由于无法从 CF Images 中检索原始图像,客户完全被锁定在他们的云中。甚至比 AWS 更糟糕的是,AWS 获取数据的成本“高得惊人”,实际上不可能从 CF 图像中获取数据。 ### 4. 提供的图像上缺少 CORS 标头 链接:[社区帖子 1](https://community.cloudflare.com/t/how-can-i-configure-cors-policies-on-cloudflare-images/314481 "社区帖子 1")、[社区帖子 2](https://community.cloudflare.com/t/downloading-image-on-client-side-is-giving-cors-error/313317 "社区帖子 2")、[社区帖子 3](https://community.cloudflare.com/t/cloudflare-images-cors-error-when-loading-via-javascript/312609 "社区帖子 3") 由于某种原因,通过 CF 图像提供的所有图像都缺少 CORS 标头,这意味着您不能执行诸如在画布、WebGL 上下文或具有该download属性的锚标记之类的操作。这似乎是一个奇怪的疏忽。 如果您只向您自己的域提供图像,现在可以直接从您的自定义域提供图像。https://my.domain/cdn-cgi/imagedelivery/其中 PATH 是您通常在imagedelivery.net 上使用的路径。 https://developers.cloudflare.com/images/cloudflare-images/serve-images#serving-images-from-custom-domains 如果您需要向其他或未知域提供图像,则需要自己使用 CF Worker 之类的东西绕过它。 ### 5.缺乏动态调整大小,只允许20个“变体” 链接:[社区帖子](https://community.cloudflare.com/t/i-need-more-variants-in-image-service/324776 "社区帖子") 无论出于何种原因,CF 图像仅限于 20 个“变体”,即。size + 调整大小模式,没有更多选项,也没有启用基于查询的调整大小参数的选项。这对于您事先知道所有尺寸的应用程序可能有意义,但 CF Images 还支持他们所谓的“直接创建者上传”,这是您可以创建的一次性 URL,允许您的用户直接上传到 CF 图像而无需通过您的服务器管道它。这一切都很好,但需要您在客户端进行任何自定义或用户定义的裁剪,并且将已经裁剪的图像上传到 CF 图像时,您将永久丢失图像信息。这意味着用户无法在不重新上传图像的情况下决定稍后更改裁剪,这既不切实际又浪费空间和带宽。 ### 6、“直接创作者上传”基本没用 链接:[文档中的直接创建者上传](https://developers.cloudflare.com/images/cloudflare-images/upload-images/direct-creator-upload "文档中的直接创建者上传"),[社区帖子(由我)](https://community.cloudflare.com/t/id-from-direct-upload-differs-from-final-image-id-rendering-direct-upload-practically-useless/318722 "社区帖子(由我)"),[社区帖子 2(由我)](https://community.cloudflare.com/t/webhook-for-tracking-direct-creator-upload/315099 "社区帖子 2(由我)") 为了扩展上面提到的“直接创建者上传”,我实际上还没有找到如何以一种有意义的方式使用它,虽然我真的很想。流程是这样的: 从 CF API 请求一次性上传 URL 并将其返回给用户 这包含一个id和一个uploadURL 用户上传具有给定的图像 uploadURL 这很好用,但是虽然这在技术上允许用户直接上传到 CF 图像,但无法知道上传是否成功,也无法知道最终的id和结果图像 URL 是什么,而不是被客户告知并盲目信任客户。 CF 图像没有 webhook(如CF Stream),所以我解决这个问题的第一个本能是id在服务器端请求中存储从 CF API 接收到的数据,并让用户在上传完成后 ping 服务器. 然后我可以再次使用 CF API 使用原始图像获取图像id并验证图像确实已成功上传。不幸的是,这不起作用,因为id来自 CF API 的与id上传图像的最终版本不同。 我敢肯定我已经严重误解了一些东西,但我非常想知道有人会如何使用这是一个生产环境,您不能信任客户,并且需要能够跟踪使用情况,以及删除用户数据的可能性。 ### 7. 大小限制为 10MB,不可增加 这个似乎很低,因为您希望在调整图像大小时获得最高质量。在产品发布的HN 线程中,提到这是一个起始默认值,并且它们可以支持更大的尺寸。希望这将在某个时候更改为 25MB 之类的大小。 ### 8.无法批量删除图片 链接:[社区帖子(由我提供)](https://community.cloudflare.com/t/batch-deletion-of-images-and-streams/315691 "社区帖子(由我提供)") 目前无法使用 CF API 一次删除超过 1 个图像,需要您为此构建自己的解决方案,确保您保持在每 5 分钟 1,200 个请求的 CF API 速率限制之下 - 这适用于您的整个应用程序对 CF API 的使用。 ### 9. 你需要自己修补这些东西 通过使用一个简单的 CF Worker,您可以获得正确的 CORS 标头和图像的实际缓存。这样做,您将获得预期的功能(CORS 标头),并通过正确缓存图像来降低成本。 问题是,您正在使用 CF 服务来执行此操作,它本身不需要做一些事情,但更重要的是 - 如果可以通过自己执行此操作来降低成本,那么人们会认为成本可能会更高如果这是由 CF 实施的,则减少。 # 结论 那么,CF Images 是一个糟糕的产品吗?不,绝不是,但考虑到上述所有问题,它似乎既不完整又匆忙。我对制作这种复杂性和规模的产品需要什么样的管理和架构流程一无所知,因此我无法说这些是否可以甚至应该修复。此外,鉴于该产品处于早期阶段,它会进行大量更改和改进。 不过,我确实希望他们称其为测试版,我确实希望 CF 真的把钱花在他们嘴上,实际上使 CF 图像比 AWS 更实惠,并提供了一种检索原始图像以防止供应商锁定的方法-在 - 特别是他们出于同样的原因公开批评他们的竞争对手。 最后,我希望这个列表很快就会过时,我很快就可以编辑所有这些,并说明 CF 团队如何解决或解决这些问题。 # 感谢和进一步讨论 谢谢您阅读此篇!我也很想听听你的想法和想法。加入Hacker News上的讨论,或者随时通过daniel此博客所在的域给我发送电子邮件,或者在Twitter上给我发送电子邮件
收藏
举报
1 条回复
动动手指,沙发就是你的了!
登录
后才能参与评论