将大数据从 Droplet 同步到 Digital Ocean Space (S3)
Sync big data from droplet to Digital Ocean Space (S3)
我的网络项目静态文件夹大小约为 10 GB,它存储在 Digital Ocean Droplet 中。今天我试用了 Digital Ocean Space,我的想法是将我所有的存储文件复制并同步到新的 space。
我的第一个方法是从挂载文件夹开始的。
我在主目录中创建了 .passwd-s3fs
文件并添加了文本 space_name:space_key:space_secret
然后我通过命令安装了s3fs包:
apt-get install s3fs
在 var
中创建了用于安装的新存储文件夹:
s3fs space_name /var/storage -ourl=https://ams3.digitaloceanspaces.com
在使用 rsync 结束时,我开始将文件同步到我的 space
rsync -av --stats --progress /var/www/project/static/* /var/storage
好的,同步开始了,但是速度很慢。
例如pdf文件是如何同步的:
static/demo.pdf
812,707 100% 194.60kB/s 0:00:03 (xfr#1, ir-chk=3084/3086)
首先同步静态文件夹中的文件。
但是 30 分钟过去了,DO space 中的文件夹仍然是空的。 shell.
没有任何错误
也许还有另一种明智的方法可以将我的 Droplet 静态文件迁移到 Space?
在我留下澄清评论之前,我将解释这两个选项。 DigitalOcean Spaces 使用 Ceph RGW 作为 S3 实现,但此处的答案适用于 DigitalOcean Spaces 和 AWS S3。
免责声明:我专门从事 DigitalOcean Spaces 工作,因为它是 Ceph 的部署。
S3 之上的文件系统
这就是您现在正在做的事情,有多种选择,例如 s3fs
。 s3fs limitations 页面涉及 S3 上的文件系统的一些问题。
这里的主要优点是您可以将它暴露在您的文件系统中,并且大部分情况下可以将其直接插入到应用程序中,而无需修改应用程序。这可能会中断,具体取决于一致性和 POSIX,并且速度很慢,因为它现在受到 S3 延迟的限制,有很多往返。
主要缺点是您经常需要相同的原始工具来再次访问内容,作为文件系统,并且它并不总是像您将内容复制到网络服务器上那样直接可用。
原生 S3
如果您不需要程序像在本地文件系统中一样透明地打开 S3 内容,更好的选择是在本机方法中使用 S3。使用 s3cmd
或 rclone
(非常快)上传您的内容,并将其视为静态内容的网络服务器,而不是本地文件系统。不要将您的内容设置为 public 除非您真的希望它是 public,并且如果您不希望它在离开您的直接后未加密,您可以考虑使用 SSE-C 来加密数据控制。
另一个主要提示是您应该尽量减少从 Droplet 到 Spaces 端点的延迟。选择离您的 Droplet 最近的空间。
我的网络项目静态文件夹大小约为 10 GB,它存储在 Digital Ocean Droplet 中。今天我试用了 Digital Ocean Space,我的想法是将我所有的存储文件复制并同步到新的 space。
我的第一个方法是从挂载文件夹开始的。
我在主目录中创建了 .passwd-s3fs
文件并添加了文本 space_name:space_key:space_secret
然后我通过命令安装了s3fs包:
apt-get install s3fs
在 var
中创建了用于安装的新存储文件夹:
s3fs space_name /var/storage -ourl=https://ams3.digitaloceanspaces.com
在使用 rsync 结束时,我开始将文件同步到我的 space
rsync -av --stats --progress /var/www/project/static/* /var/storage
好的,同步开始了,但是速度很慢。
例如pdf文件是如何同步的:
static/demo.pdf
812,707 100% 194.60kB/s 0:00:03 (xfr#1, ir-chk=3084/3086)
首先同步静态文件夹中的文件。 但是 30 分钟过去了,DO space 中的文件夹仍然是空的。 shell.
没有任何错误也许还有另一种明智的方法可以将我的 Droplet 静态文件迁移到 Space?
在我留下澄清评论之前,我将解释这两个选项。 DigitalOcean Spaces 使用 Ceph RGW 作为 S3 实现,但此处的答案适用于 DigitalOcean Spaces 和 AWS S3。
免责声明:我专门从事 DigitalOcean Spaces 工作,因为它是 Ceph 的部署。
S3 之上的文件系统
这就是您现在正在做的事情,有多种选择,例如 s3fs
。 s3fs limitations 页面涉及 S3 上的文件系统的一些问题。
这里的主要优点是您可以将它暴露在您的文件系统中,并且大部分情况下可以将其直接插入到应用程序中,而无需修改应用程序。这可能会中断,具体取决于一致性和 POSIX,并且速度很慢,因为它现在受到 S3 延迟的限制,有很多往返。
主要缺点是您经常需要相同的原始工具来再次访问内容,作为文件系统,并且它并不总是像您将内容复制到网络服务器上那样直接可用。
原生 S3
如果您不需要程序像在本地文件系统中一样透明地打开 S3 内容,更好的选择是在本机方法中使用 S3。使用 s3cmd
或 rclone
(非常快)上传您的内容,并将其视为静态内容的网络服务器,而不是本地文件系统。不要将您的内容设置为 public 除非您真的希望它是 public,并且如果您不希望它在离开您的直接后未加密,您可以考虑使用 SSE-C 来加密数据控制。
另一个主要提示是您应该尽量减少从 Droplet 到 Spaces 端点的延迟。选择离您的 Droplet 最近的空间。