如何上传文件到服务器?
How to upload a file to a server?
我想将文件上传到我在 Digital Ocean 和 AWS 的服务器。我可以使用 scp 或 sftp 通过终端执行此操作,但我想自动执行此操作并使用 Python 或任何其他编程语言执行此操作。在 Python 的情况下,如何将文件上传到高级服务器,我应该使用 sftp 客户端吗? 还有其他选择吗?
你可以使用pysftp包;
import pysftp
with pysftp.Connection('hostname', username='me', password='secret') as sftp:
with sftp.cd('public') # temporarily chdir to public
sftp.put('/my/local/filename') # upload file to public/ on remote
sftp.get_r('myfiles', '/backup') # recursively copy myfiles/ to local
https://pypi.python.org/pypi/pysftp
我猜它也在内部使用 paramiko,它可以用于 ssh、sftp 等。http://docs.paramiko.org/en/1.17/api/sftp.html
解决此问题的 AWS 方法是将文件上传到 S3,然后让您的存储桶可由您的 DigitalOcean 和 AWS EC2 服务器访问。这样,您的文件就有了一个中央存储设备,该设备非常耐用,可以根据需要由任意数量的服务器访问(可快速扩展)。
可在此处查看 python 的 AWS 开发工具包:
https://aws.amazon.com/sdk-for-python/
替代 AWS S3 包 (simples3)
http://sendapatch.se/projects/simples3/
我想将文件上传到我在 Digital Ocean 和 AWS 的服务器。我可以使用 scp 或 sftp 通过终端执行此操作,但我想自动执行此操作并使用 Python 或任何其他编程语言执行此操作。在 Python 的情况下,如何将文件上传到高级服务器,我应该使用 sftp 客户端吗? 还有其他选择吗?
你可以使用pysftp包;
import pysftp
with pysftp.Connection('hostname', username='me', password='secret') as sftp:
with sftp.cd('public') # temporarily chdir to public
sftp.put('/my/local/filename') # upload file to public/ on remote
sftp.get_r('myfiles', '/backup') # recursively copy myfiles/ to local
https://pypi.python.org/pypi/pysftp
我猜它也在内部使用 paramiko,它可以用于 ssh、sftp 等。http://docs.paramiko.org/en/1.17/api/sftp.html
解决此问题的 AWS 方法是将文件上传到 S3,然后让您的存储桶可由您的 DigitalOcean 和 AWS EC2 服务器访问。这样,您的文件就有了一个中央存储设备,该设备非常耐用,可以根据需要由任意数量的服务器访问(可快速扩展)。
可在此处查看 python 的 AWS 开发工具包:
https://aws.amazon.com/sdk-for-python/
替代 AWS S3 包 (simples3)
http://sendapatch.se/projects/simples3/