Skip to main content
 首页 » 编程设计

python之从 Amazon S3 迁移到 Azure 存储(Django 网络应用程序)

2024年08月23日34dflying

我维护这个 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 存储。您可以尝试两种方法。

  1. 使用 S3 和 Azure 存储工具将文件从 S3 移动到本地目录到 Azure Blob 存储。

下面这些用于 S3 的工具可以帮助将文件移动到本地目录。

要将本地文件移动到 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

  1. 通过使用您熟悉的语言(如 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 门户上找到这些设置。


编辑: 在 Azure 旧门户上:

在 Azure 新门户上: