将文件上传到 Azure 存储文件共享的脚本
Posted
技术标签:
【中文标题】将文件上传到 Azure 存储文件共享的脚本【英文标题】:Script to upload files to Azure Storage File Share 【发布时间】:2018-08-09 16:33:53 【问题描述】:情况: 我刚刚创建了一个 Azure 存储文件共享,我想出了如何通过脚本 (C#) 将文件上传到 Azure BLOB 存储。
问题: 我想通过脚本将文件上传到我的 Azure 存储文件共享(不是 BLOB)。我已经安装了 Azure CLI,但问题是我必须先登录 (az login),然后才能执行任何操作。
有没有什么方法可以在不挂载的情况下将文件从基于我的 PC 的文件夹上传到 Azure 存储文件共享 (testuser.file.core.windows.net\test)?
非常感谢。
【问题讨论】:
看看 AzCopy 工具。这是一个在 Windows 和 Linux 上都可用的命令行工具,您可以使用它将文件从本地计算机上传到 Azure 文件共享。 【参考方案1】:多个是为了实现这一点。如果您唯一的问题是登录部分,那么您可以使用服务主体和证书来自动登录。
例子
az login --service-principal -u http://azure-cli-2016-08-05-14-31-15 -p ~/mycertfile.pem --tenant contoso.onmicrosoft.com
您可以使用
查看更多选项az login -h
希望这会有所帮助。
【讨论】:
【参考方案2】:有没有什么方法可以将文件从基于我的 PC 的文件夹上传到 Azure 存储文件共享 (testuser.file.core.windows.net\test) 而无需挂载?
是的,我们也可以使用 C# 代码将文件上传到 azure 文件存储。请尝试使用以下代码。
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("storage connection string");
// Create a CloudFileClient object for credentialed access to File storage.
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
// Get a reference to the file share we created previously.
CloudFileShare share = fileClient.GetShareReference("test");
share.CreateIfNotExists();
CloudFile cloudFile = share.GetRootDirectoryReference().GetFileReference("fileName");
Stream fileStream = File.OpenRead(@"localpath");
cloudFile.UploadFromStream(fileStream);
【讨论】:
以上是关于将文件上传到 Azure 存储文件共享的脚本的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Azure Pipeline 上使用 Terraform 将文件上传到 Azure 存储?