如何将所有文件从S3手动迁移回EC2服务器?

在将我的站点恢复到新服务器后,所有图片都无法显示。即使重新构建(rebake)后,图片仍然无法显示。是否可以手动迁移?如果可以,如何将 S3 上的所有文件手动迁移到本地存储?

2 个赞

新网站上的图片是否指向 S3 存储桶?如果是,它们应该可以正常工作。

或许可以看看 Migrating uploads from S3 to local - #2 by Stephen howto 标签。

2 个赞

你好,感谢回复。

我按照你之前提到的步骤操作了,但没有任何效果。结果我的网站图片都损坏了。请查看我之前的主题:

只有部分文件从 S3 迁移回来了,并非全部。

root@ubuntu-blr-app:/var/www/discourse# rake uploads:migrate_from_s3
Migrating uploads from S3 to local storage for 'default'...
..Done!

所以我考虑手动迁移所有文件,但不知道是否可行?

2 个赞

我的 S3 存储桶中有上述三个文件夹。我不知道在服务器上应该将每个文件夹从 S3 复制到哪个位置。复制完成后,运行 rake posts:rebake 是否能完成最终工作?

2 个赞

各位,对这个 issue 有什么想法吗?

1 个赞

最后,我想我找到了解决我问题的方法。我认为我已经解决了 95% 的问题。我不确定这是否是最佳做法。

./launcher enter app
sudo apt install awscli
aws configure

使用我的 S3 ID 和密码配置了 AWS。然后

cd public/uploads/default/
aws s3 sync s3://mybucketname/

该命令从 S3 下载了所有三个目录及其中的所有文件。由于我在之前的服务器上找不到名为 inventory 的文件夹,我将其删除了(不确定删除此文件夹是否正确)。然后

rake posts:rebake
exit
./launcher rebuild app

好了,一切又恢复正常了。但我发现其中一条帖子中的图片链接已损坏,但如果进行编辑,我可以在编辑器中查看该图片。我下载了同一张图片并尝试重新上传,但图片仍然显示为损坏。不确定这是一个独立的问题,还是与当前问题相关。

5 个赞