Rails、载波与环境
Rails, carrierwave and environment
开发、暂存和生产环境可能会对存储在 S3 上的文件造成严重破坏,可能会造成覆盖。
向文件名添加时间戳是可能的,但所考虑的实例并未考虑该路径。相反,目标是附加一种形式的后缀来区分开发和暂存记录(以及相关文件),以便所有这些都可以保存和提供。
完成此任务最明智的方法是什么?
最简单的选择是针对不同的环境使用不同的存储桶。想想 app-development
和 app-production
。理想情况下,对不同的存储桶施加限制,并且访问仅限于某些密钥。这可以确保例如只有生产服务器可以销毁生产桶中的对象。
可以通过环境变量、初始化程序或每个环境来设置要使用的存储桶。
更进一步是针对不同的环境使用不同的 AWS 账户,但这是否有意义取决于您的组织和您在 AWS 上使用的资源。我会说它对 S3 来说有点矫枉过正。不过,如果您对此感兴趣,这是一篇解释概念及其背后原因的短文:Separate AWS Production and Development Accounts
开发、暂存和生产环境可能会对存储在 S3 上的文件造成严重破坏,可能会造成覆盖。
向文件名添加时间戳是可能的,但所考虑的实例并未考虑该路径。相反,目标是附加一种形式的后缀来区分开发和暂存记录(以及相关文件),以便所有这些都可以保存和提供。
完成此任务最明智的方法是什么?
最简单的选择是针对不同的环境使用不同的存储桶。想想 app-development
和 app-production
。理想情况下,对不同的存储桶施加限制,并且访问仅限于某些密钥。这可以确保例如只有生产服务器可以销毁生产桶中的对象。
可以通过环境变量、初始化程序或每个环境来设置要使用的存储桶。
更进一步是针对不同的环境使用不同的 AWS 账户,但这是否有意义取决于您的组织和您在 AWS 上使用的资源。我会说它对 S3 来说有点矫枉过正。不过,如果您对此感兴趣,这是一篇解释概念及其背后原因的短文:Separate AWS Production and Development Accounts