python - 从 Amazon S3 迁移到 Azure 存储(Django Web 应用程序)

标签 python django azure amazon-s3 boto

我维护这个 Django Web 应用程序,用户可以在其中聚集并互相聊天。如果他们愿意,他们也可以发布照片。我处理这些照片(即优化其大小)并将它们存储在 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.0django-storages 1.1.8Boto 是一个提供 Amazon Web Services 接口(interface)的 Python 包,而 django-storages 是 Django 自定义存储后端的集合。

我现在想停止使用 Amazon S3,而是迁移到 Azure 存储。 IE。我需要将所有现有文件从 S3 迁移到 Azure 存储,接下来我需要配置 Django 应用程序以将所有新的静态 Assets 保存在 Azure 存储上。

我找不到关于我想要实现的目标的精确文档。虽然我知道 django-storages support Azure 。有人以前做过这种迁移吗?可以指出我需要从哪里开始,要遵循哪些步骤才能让一切正常运行?

注意:如果您需要更多信息,请向我询问。

最佳答案

根据我的经验,您可以执行两个步骤将 Django Web 应用程序从 Amazon S3 迁移到 Azure 存储。

第一步是将所有文件从 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

  • 通过使用您熟悉的语言(例如 Python、Java 等)使用 Amazon S3 和 Azure Blob Storage 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 存储将允许您执行的任何上传自动存储在存储容器中。

    DEFAULT_FILE_STORAGE='storages.backends.azure_storage.AzureStorage'
    AZURE_ACCOUNT_NAME='myaccount'
    AZURE_ACCOUNT_KEY='account_key'
    AZURE_CONTAINER='mycontainer'
    

    您可以按照 @neolursa 的说法在 Azure 门户上找到这些设置。

    <小时/>

    编辑: 在 Azure 旧门户上: enter image description here

    在 Azure 新门户上: enter image description here

    关于python - 从 Amazon S3 迁移到 Azure 存储(Django Web 应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34173861/

    相关文章:

    python - Django 将用户映射到模型

    python - Django:获取某个用户所在的 session 列表

    python - 从 python 或 r 脚本启动 Azure 机器学习算法

    python - 是否可以使用 Pulumi 创建 Azure 服务主体?

    python - 从 json 数据中删除重复项

    python - 同时处理 TCP 和 UDP 的 Twisted 协议(protocol)

    javascript - 如何在 python django 中返回字典并在 javascript 中查看它?

    azure - 是否可以在位于 Github 的 YML 中查看 Gitlab 存储库?

    python - 存储Azure云的身份验证 key

    python - 是否可以将 django 用户帐户绑定(bind)到一个特定的工作站?