小编gpi*_*hot的帖子

将Cloudfront与Active Storage结合使用

我正在使用Ruby on Rails构建网站。要上传图像,我正在使用Active Storage和Amazon S3。一切都很好。用户可以上传图像,并且可以在网站上查看图像(图像是公开的)。

现在,在生产中,图像的URL为:https : //example.com/rails/active_storage/representations/1ej21h ...

哪个将302返回到S3存储桶:https : //my-bucket.amazonaws.com/variants/9jdh2 ...

我不喜欢:

  • 两次往返获得形象;
  • 向Rails服务器发送图像请求;
  • 这些图像的呆滞感觉。

我想使用Cloudfront来提供这些图像。

我在Google和StackOverflow上的《 Rails指南》中进行了搜索,但到目前为止找不到合适的答案。

目前是否有将Cloudfront与Active Storage结合使用的解决方案?

编辑:更多上下文:每张图片至少每分钟将在正常流量和来自不同国家的情况下加载1000次。我不想让服务器承受这种压力(它还有其他要求要处理)。我希望用户尽快加载这些图像。因此,Cloudfront作为这些图像(公共图像,无需获取签名的URL)的CDN。

ruby-on-rails amazon-s3 amazon-cloudfront ruby-on-rails-5 rails-activestorage

8
推荐指数
1
解决办法
1627
查看次数

在Twig中访问枚举值

在我的一个实体中,我添加了这个:

class MyClass {

  // Annotations   

  /**
   * @ORM\Column(type="integer")
   */
  private $status;

  // Status values
  const Created = 10;
  const Refused = 20;
  const Valid   = 30;

  // Getters, setters
}
Run Code Online (Sandbox Code Playgroud)

所以我可以像使用枚举那样使用MyClass :: Status(MyClass :: Created,MyClass :: Refused等...)来访问这些值.

我想检查我的模板中我的实体的当前状态.但我不知道该怎么做.

我试过(绝望地):

{% if entity.status == entity.Created %}
Run Code Online (Sandbox Code Playgroud)

哪个不能按预期工作.

但没有任何作用,我没有在谷歌或SO上找到任何东西.

enums symfony twig

1
推荐指数
1
解决办法
2522
查看次数