我维护这个 Django 网络应用程序,用户可以在其中聚集并互相聊天。如果他们愿意,他们也可以张贴照片。我处理这些照片(即优化它们的大小)并将它们存储在 Amazon S3 存储桶中(就像 Azure 存储中的“容器”)。为此,我在 Amazon 上设置了存储桶,并在我的 settings.py 中包含了以下配置代码:
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_S3_FORCE_HTTP_URL = True
AWS_QUERYSTRING_AUTH = False
AWS_SECRET_ACCESS_KEY = os.environ.get('awssecretkey')
AWS_ACCESS_KEY_ID = os.environ.get('awsaccesskeyid')
AWS_S3_CALLING_FORMAT='boto.s3.connection.OrdinaryCallingFormat'
AWS_STORAGE_BUCKET_NAME = 'dakadak.in'
此外,Boto 2.38.0 和 django-storages 1.1.8 安装在我的虚拟环境中。 Boto 是一个 Python 包,它提供与 Amazon Web Services 的接口(interface),而 django-storages 是 Django 的自定义存储后端的集合。
我现在想停止使用 Amazon S3,而是迁移到 Azure 存储。 IE。我需要将所有现有文件从 S3 迁移到 Azure 存储,接下来我需要配置我的 Django 应用程序以将所有新的静态 Assets 保存在 Azure 存储上。
我找不到关于我要实现的目标的准确文档。虽然我确实知道 django-storages support Azure .有没有人以前做过这种迁移,可以指出我需要从哪里开始,要遵循什么步骤才能让一切正常运行?
注意:如果需要,请向我询问更多信息。
请您参考如下方法:
根据我的经验,您可以执行从 Amazon S3 迁移到 Azure Storage for Django Web 应用程序的两个步骤。
第一步是将所有文件从 S3 移动到 Azure Blob 存储。您可以尝试两种方法。
- 使用 S3 和 Azure 存储工具将文件从 S3 移动到本地目录到 Azure Blob 存储。
下面这些用于 S3 的工具可以帮助将文件移动到本地目录。
- AWS 命令行 ( https://aws.amazon.com/cli/ ):
aws s3 cp s3://BUCKET/FOLDER localfolder --recursive - S3cmd 工具(http://s3tools.org/):
s3cmd -r sync s3://BUCKET/FOLDER localfolder - S3 浏览器 (http://s3browser.com/): 这是一个 GUI 客户端。
要将本地文件移动到 Azure Blob 存储,您可以使用 AzCopy 命令行实用程序在 Microsoft Azure Blob、文件和表存储之间进行高性能上传、下载和复制数据,请参阅文档 https://azure.microsoft.com/en-us/documentation/articles/storage-use-azcopy/ .
示例:AzCopy/Source:C:\myfolder/Dest:https://myaccount.blob.core.windows.net/mycontainer
- 通过使用您熟悉的语言(如 Python、Java 等)使用 Amazon S3 和 Azure Blob 存储 API 进行编程进行迁移。请参阅它们的 API 使用文档 https://azure.microsoft.com/en-us/documentation/articles/storage-python-how-to-use-blob-storage/ 和 http://docs.aws.amazon.com/AmazonS3/latest/API/APIRest.html。
第二步是按照文档http://django-storages.readthedocs.org/en/latest/backends/azure.html重新配置Django settings.py文件。 Django-storages 允许您上传的任何内容自动存储在您的存储容器中。
DEFAULT_FILE_STORAGE='storages.backends.azure_storage.AzureStorage'
AZURE_ACCOUNT_NAME='myaccount'
AZURE_ACCOUNT_KEY='account_key'
AZURE_CONTAINER='mycontainer'
如@neolursa 所说,您可以在 Azure 门户上找到这些设置。
