微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从azure功能应用程序将文件上传到azure文件共享

如何解决从azure功能应用程序将文件上传到azure文件共享

我有一个功能应用程序和azure文件共享。我想使用url从Internet上传文件到我的Azure文件共享存储。

  private ShareFileClient GetShareFile(string filePath)
    {
        string connectionString = "My connection string";

        return new ShareFileClient(connectionString,"temp",filePath);
    }

         ShareFileClient destFile = GetShareFile(filePath);

            // Start the copy operation
            await destFile.StartcopyAsync(new Uri(DownloadUrl));

但是此代码无法正常工作。它抛出错误“未经授权 RequestId:000db1ff-801a-000a-0602-b24449000000 时间:2020-11-03T16:58:36.5697281Z 状态:401(未经授权) 错误代码:CannotVerifycopySource”。任何帮助将不胜感激

解决方法

编写和读取的简单代码:

    string con_str = "DefaultEndpointsProtocol=https;AccountName=0730bowmanwindow;AccountKey=xxxxxx;EndpointSuffix=core.windows.net";
    string sharename = "test";
    string filename = "test.txt";
    string directoryname = "testdirectory";

    ShareServiceClient shareserviceclient = new ShareServiceClient(con_str);
    ShareClient shareclient = shareserviceclient.GetShareClient(sharename);
    ShareDirectoryClient sharedirectoryclient = shareclient.GetDirectoryClient(directoryname);

    //write data.
    ShareFileClient sharefileclient_in = sharedirectoryclient.CreateFile(filename,1000);
    string filecontent_in = "This is the content of the file.";
    byte[] byteArray = Encoding.UTF8.GetBytes(filecontent_in);
    MemoryStream stream1 = new MemoryStream(byteArray);
    stream1.Position = 0;
    sharefileclient_in.Upload(stream1);

    //read data.
    ShareFileClient sharefileclient_out = sharedirectoryclient.GetFileClient(filename);
    Stream stream2 = sharefileclient_out.Download().Value.Content;
    StreamReader reader = new StreamReader(stream2);
    string filecontent_out = reader.ReadToEnd();

上面的代码对我来说效果很好,您只需要先将文件转换为流即可。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。