如何将文件上传到 Azure 存储?

Posted

技术标签:

【中文标题】如何将文件上传到 Azure 存储?【英文标题】:How to upload a file to Azure storage? 【发布时间】:2020-02-08 02:32:50 【问题描述】:

我的问题很简单。

谢谢。

【问题讨论】:

你想上传什么? Azure Blob 还是 Azure 文件? @George Chen,我要上传文件 【参考方案1】:

下面的代码是我上传文件到根目录的测试,它使用Azure Storage SDK v8,如果你想使用最新版本的sdk,你可以使用这个Azure File SDK:@ 987654321@。它将向您展示如何使用 SDK,它还包含许多示例,这是upload sample。

final String storageConnectionString =
            "DefaultEndpointsProtocol=http;" +
                    "AccountName=your storage account name;" +
                    "AccountKey=your storage connection key";
    try 
        // Use the CloudStorageAccount object to connect to your storage account
        CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);

        // Create the file client.
        CloudFileClient fileClient = storageAccount.createCloudFileClient();

        // Get a reference to the file share
        CloudFileShare share = fileClient.getShareReference("windows");

        //Get a reference to the root directory for the share.
        CloudFileDirectory rootDir = share.getRootDirectoryReference();

        // Define the path to a local file.
        final String filePath = "C:\\Users\\georgec\\Documents\\test.json";

        //Get a reference to the file you want to upload
        CloudFile cloudFile = rootDir.getFileReference("test.json");
        cloudFile.uploadFromFile(filePath);
    

【讨论】:

谢谢!它工作得很好,但现在我在下载时遇到了问题。我获得了 URL,添加了 SAS 令牌,但没有获得下载链接,但我获得了文件的内容。例如,我上传了一个 .rtf 文件,当我尝试下载时得到了这个: \rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf600 \fonttbl\f0\fswiss\fcharset0 Helvetica; \colortbl;\red255\green255 \blue255; *\expandedcolortbl;; \paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0.... 文件的内容将在浏览器中内嵌显示或提示用户下载文件,具体取决于文件的内容类型。就像它会显示的 txt 或 json 一样,所以也许你可以用代码或 powershell 下载它,你也可以azcopy 来做。 如果这可以帮助你,请接受它作为答案。 是的,你是对的。如果我添加一个 doc 文件或 zip,它会被下载。感谢您的帮助。 您是否遇到过上传较大文件的问题。我无法上传大于 2 MB 的文件。没有显示错误,只是不起作用。

以上是关于如何将文件上传到 Azure 存储?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Javascript 将多个文件上传到 Azure 存储

将文件上传到 Azure 存储文件共享的脚本

如何将大文件上传到 Azure Blob 存储 (.NET Core)

如何跟踪异步文件上传到 Azure 存储的进度

如何通过 Apache Beam 将文件上传到 Azure blob 存储?

如何将静态文件添加/上传到 Azure Blob 存储容器的特定路径