问题描述
我有一个生产系统,该系统使用Amazon S3存储桶来存储ActiveStorage Blob(Rails 6.0.3)。
对于开发,我使用Local服务是因为我不想无意间弄乱生产数据。
在本地复制/镜像/同步生产存储区的最佳方法是什么,以便我可以将其用作开发和测试的草稿?
我尝试在本地复制生产数据库并将存储桶直接复制到本地服务目录,但是ActiveStorage看不到带有正确键的blob。 (不确定为什么吗?)
我还看到了一些在云服务之间或从本地到云服务,而不是从云服务到本地的镜像服务的示例。
解决方法
本地存储按子目录组织
$ tree storage
storage
├── ZD # first 2 char
│ └── ou # third and fourth car
│ └── ZDouA9nEzJjWAx71Cmb3WVeY
,而S3以平面格式存储文件(在子目录下没有)。上面的文件将作为直接文件存储在存储桶下
ZDouA9nEzJjWAx71Cmb3WVeY
我不知道它适用于Rails(以及哪个版本)。但是我已经使用上述概念(Spree 4-使用Rails框架6)成功地将开发存储文件传输到S3。