我们目前正在使用Active Storage将化身图像上传到Amazon S3,这在本地和生产上都很有效
class User < ApplicationRecord
has_one_attached :avatar
end
我现在正在尝试使用Action Text,并遵循Rails Guides上的指示,该指南在localhost 上运行良好
class Course < ApplicationRecord
belongs_to :user
has_rich_text :content
end
然而,当我部署到生产中时,富文本格式可以工作,但附件没有上传到S3,这让我很惊讶,因为我认为它使用的是与我们上传化身图像时使用的相同的活动存储凭据。奇怪的是,它用文件名填充active_storage_blobs
表,即使它们没有被上传或被active_storage_attachments
引用。
有人能帮忙吗?
为了在AWS上配置CORS,您需要更改生产bucket的设置。
JSON中的CORS配置示例如下:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"https://www.example.com"
],
"ExposeHeaders": []
}
]
其中https://www.example.com
是Rails应用程序的URL。请确保不允许所有来源(您可以通过用*
通配符替换URL来做到这一点(。
事实证明,默认情况是直接上传操作文本(与活动存储附件不同(,并且在S3 上设置CORS后即可工作