首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何模拟本地机器上的Azure文件存储?

如何模拟本地机器上的Azure文件存储?
EN

Stack Overflow用户
提问于 2022-05-31 19:13:37
回答 2查看 286关注 0票数 1

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

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

我只想能够为Azure文件存储做同样的事情。在Azurite或废弃的Azure存储仿真程序中,我看不到对同样的支持。根据官方Microsoft (https://learn.microsoft.com/en-us/azure/storage/common/storage-use-emulator#differences-between-the-storage-emulator-and-azure-storage)的第5点,“存储模拟器中目前不支持文件服务和SMB协议服务终结点”。

有没有一种方法来模拟在Azurite上的文件存储?或其他辅助申请,码头形象等?

EN

回答 2

Stack Overflow用户

发布于 2022-05-31 22:25:58

一种选择是将文件共享直接挂载到正在运行的码头容器,作为CIFS共享。我测试了这个最新的Ubuntu对接图像从码头枢纽。要对文件共享进行身份验证,您需要存储帐户的名称和访问密钥,该密钥可以在门户视图中为您的特定存储帐户找到。

拉出最新的图像并运行它,指定--privileged标志以避免mount: <mount-path>: permission denied错误

代码语言:javascript
复制
docker pull ubuntu:latest
docker run -it --entrypoint /bin/sh --privileged ubuntu:latest

安装cifs-utils包以防止其丢失

代码语言:javascript
复制
apt update
apt install cifs-utils -y

在我的示例中,文件共享名为root,因此我将其挂载到容器中的/mnt/root

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2022-06-01 15:48:43

目前没有用于文件共享的模拟器,但解决办法之一是,您可以使用PowerShell,在Azure中创建一个新的存储帐户,并利用文件共享作为本地计算机上的本地驱动器。

有关这方面的更多信息,您可以跟随在Windows中使用Azure文件共享

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72453053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档