当前位置: 首页 > 知识库问答 >
问题:

从Amazon S3迁移到Azure存储(Django Web应用)

冷善
2023-03-14

我维护这个Django web应用程序,用户聚集在一起并相互聊天。如果愿意,他们也可以发布照片。我处理这些照片(即优化它们的大小),并将它们存储在Amazon S3存储桶中(就像Azure存储中的“容器”)。为此,我在Amazon上设置了bucket,并在设置中包含以下配置代码。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-store 1.1.8安装在我的虚拟环境中。Boto是一个Python包,提供Amazon Web Services的接口,而django-store是Django自定义存储后端的集合。

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

我找不到关于我试图实现的目标的精确文档。虽然我知道django存储支持Azure。以前有没有人做过这种迁移,并且可以指出我需要从哪里开始,遵循什么步骤来启动并运行所有东西?

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

共有2个答案

梁丘柏
2023-03-14

您共享的链接具有Django到Azure Blob的配置。现在当我这么做的时候,我所要做的就是去Azure门户。在存储帐户下,按如下方式获取访问密钥。然后创建一个容器,并将容器名称指定给Django配置。这应该足够了。然而我不久前就这么做了。

对于第二部分,将当前文件从S3 bucket迁移到BLOB,有几个工具可以使用;

如果使用的是Visual Studio,则在Visual Studio中输入Azure帐户凭据后,可以在服务器资源管理器下找到Blob。

或者,您可以使用第三方工具,如Azure Storage Explorer或Cloudberry Explorer。

希望这有帮助!

谭志用
2023-03-14

根据我的经验,从Amazon S3迁移到Azure Storage for Django web app,可以执行以下两个步骤。

第一步是将所有文件从S3移动到Azure Blob存储。有两种方法可以尝试。

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

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

  • AWS命令行(https://aws.amazon.com/cli/):aws s3 cp s3://BUCKET/FOLDER localfold--递归
  • S3cmd工具(http://s3tools.org/):s3cmd-r sync s3://BUCKET/FOLDER localfile
  • 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

第二步是按照文档http://django-storages.readthedocs.org/en/latest/backends/azure.html重新配置Djangosettings.py文件。Django存储允许您所做的任何上传自动html" target="_blank">存储在存储容器中。

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

你可以在Azure门户网站上找到@neolursa所说的这些设置。

 类似资料:
  • 我相当愚蠢地上传了一个vhd到Azure文件存储,以为我可以从它创建一个虚拟机,却发现它真的需要在Blob存储中。 我知道我可以再上传一次,但它非常大,我的上传速度非常慢。 我的问题是-我可以将文件从文件存储移动到blob存储,而无需再次下载/上传吗?也就是说,Azure门户UI中是否有任何东西可以执行此操作,甚至是PowerShell命令?

  • 我在雪花上做POC,探索这个产品。 我有一个问题:在SQL Server中,我们有400-500个存储过程,这些存储过程是从SSRS报告调用的。这些存储过程本质上很简单,如下所示:

  • 我们将Google Cloud Datastore用于Google App Engine(GAE)应用程序。在我们的项目改造期间,我们希望将数据库从Datastore迁移到Google CloudSQL。 我们在数据存储中约有1 TB数据,不包括索引。 如何从数据存储迁移到云SQL,是否有任何现有的开源解决方案可用于此。 我已经检查了下面的一个https://cloud.google.com/da

  • 您可能已经知道,JFrog宣布Bintray、JCenter、GoCenter和ChartCenter将于今年5月1日关闭。由于JCenter作为Android项目中的主要repo广泛用于各种依赖项,因此应该使用替代repo,我使用了mavenCentral因为它是最流行和被广泛接受的。 它按预期工作,但我只想从JCenter下载realm和其他缺少的东西,直到它完全迁移。然后看起来是这样的: 然

  • 我正在尝试在谷歌云上迁移我的rails应用程序。我已将活动存储与地面军事系统上创建的存储桶连接起来。我上传了bucket中的文件夹“storage”,但应用程序中的所有图像都有404错误。 如何正确迁移GCS中的本地存储文件夹? 谢谢你的建议

  • 我想通过运行在Azure VM上的FTP服务器与用户共享Azure Blob存储中的文件。 据我所知,您不能在VM上挂载Blob存储,但可以使用“网络使用”挂载Azure文件共享。 Blob存储上的文件将以增量方式上载,因此理想情况下,我希望在上载时将其复制到Azure文件,Azure功能似乎是理想的方式,因为它们很容易为我设置和处理Blob存储上的触发器。 我如何使用Azure功能将文件从Blo