gpt4 book ai didi

azure - 如何在本地计算机上模拟Azure文件存储?

转载 作者:行者123 更新时间:2023-12-03 00:19:24 25 4
gpt4 key购买 nike

我想从我的 Web 应用程序集成和测试 Azure 文件存储,在将其部署到环境(配置了 Azure 共享文件夹)之前,我想在本地测试它。

我有一个在本地运行 Azurite 的 docker 容器,并且我能够在本地计算机上模拟 Azure Blob 存储容器,与其连接并进行测试。

我只是希望能够对 Azure 文件存储执行相同的操作。我在 Azurite 或已弃用的 Azure 存储模拟器中没有看到对相同内容的支持。根据 Microsoft 官方文档的第 5 点 - ( https://learn.microsoft.com/en-us/azure/storage/common/storage-use-emulator#differences-between-the-storage-emulator-and-azure-storage ),“存储模拟器当前不支持文件服务和 SMB 协议(protocol)服务端点。”。

有没有办法在 Azurite 上模拟文件存储?或者任何其他支持应用程序、docker 镜像等?

最佳答案

一种选择是将文件共享作为 CIFS 共享直接安装到正在运行的 docker 容器。我在从 docker hub 拉取的最新 Ubuntu docker 镜像上对此进行了测试。要对文件共享进行身份验证,您需要存储帐户的名称和访问 key ,可以在特定存储帐户的门户 View 中找到该名称和访问 key 。

拉取最新镜像并指定 --privileged 运行它避免标记 mount: <mount-path>: permission denied错误

docker pull ubuntu:latest
docker run -it --entrypoint /bin/sh --privileged ubuntu:latest

安装cifs-utils包裹以防丢失

apt update
apt install cifs-utils -y

在我的示例中,文件共享名为 root所以我将其安装在 /mnt/root在容器中。

STORAGE_ACCOUNT_NAME="<your_storage_account>"
ACCESS_KEY="<access_key>"

mkdir /mnt/root
if [ ! -d "/etc/smbcredentials" ]; then
mkdir /etc/smbcredentials
fi
if [ ! -f "/etc/smbcredentials/$STORAGE_ACCOUNT_NAME.cred" ]; then
bash -c 'echo "username='$STORAGE_ACCOUNT_NAME'" >> /etc/smbcredentials/'$STORAGE_ACCOUNT_NAME'.cred'
bash -c 'echo "password='$ACCESS_KEY'" >> /etc/smbcredentials/'$STORAGE_ACCOUNT_NAME'.cred'
fi
chmod 600 /etc/smbcredentials/$STORAGE_ACCOUNT_NAME.cred

bash -c 'echo "//'$STORAGE_ACCOUNT_NAME'.file.core.windows.net/root /mnt/root cifs nofail,vers=3.0,credentials=/etc/smbcredentials/'$STORAGE_ACCOUNT_NAME'.cred,dir_mode=0777,file_mode=0777,serverino" >> /etc/fstab'
mount -t cifs //$STORAGE_ACCOUNT_NAME.file.core.windows.net/root /mnt/root -o vers=3.0,credentials=/etc/smbcredentials/$STORAGE_ACCOUNT_NAME.cred,dir_mode=0777,file_mode=0777,serverino,nosharesock,actimeo=30

还可以通过门户找到类似的挂载共享说明:Your-Storage-Account > File shares > Your-share > Connect .

关于azure - 如何在本地计算机上模拟Azure文件存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72453053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com