簡體   English   中英

將文件上傳到 Azure 存儲的 POST 方法 - 返回什么

[英]POST method to upload file to Azure storage - what to return

我正在創建一個應用程序

  1. 用戶可以上傳文本文件,然后
  2. 找到最常用的單詞並在文本中更改該單詞
  3. 向用戶顯示更改的文本。

如果可能的話,我想

  1. 在調用 Post 方法時在上傳之前獲取文件的文本內容並保存該內容

所以我在 POST 方法中添加了“DownloadTextAsync()”方法,但似乎我將此方法調用到錯誤的主題?

 [HttpPost("UploadText")]
        public async Task<IActionResult> Post(List<IFormFile> files)
        {

                    string connectionString = Environment.GetEnvironmentVariable("mykeystringhere");

                    // Create a BlobServiceClient object which will be used to create a container client
                    BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);

                    //Create a unique name for the container
                    string containerName = "textdata" + Guid.NewGuid().ToString();

                    // Create the container and return a container client object
                    BlobContainerClient containerClient = await blobServiceClient.CreateBlobContainerAsync(containerName);

                    // Create a local file in the ./data/ directory for uploading and downloading
                    string localPath = "./data/";
                    string fileName = "textfiledata" + Guid.NewGuid().ToString() + ".txt";
                    string localFilePath = Path.Combine(localPath, fileName);

                    // Get a reference to a blob
                    BlobClient blobClient = containerClient.GetBlobClient(fileName);

                    // Open the file and upload its data
                    using FileStream uploadFileStream = System.IO.File.OpenRead(localFilePath);
                    await blobClient.UploadAsync(uploadFileStream, true);
                    uploadFileStream.Close();

                    string downloadFilePath = localFilePath.Replace(".txt", "DOWNLOAD.txt");


                    // Get the blob file as text
                    string contents = blobClient.DownloadTextAsync().Result;

                    //return the string 
                    return contents;     


            //if (uploadSuccess)
            //    return View("UploadSuccess");
            //else
            //    return View("UploadError");
        }

我遇到的問題是

  1. 我知道“blobClient”是對 blob 的引用,我可以在其中獲取文件的數據,但這一定是錯誤的嗎?

  2. 此外,似乎我不能使用“CloudBlobContainer”或“CloudBlockBlob blob”。 是不是因為在POST方法內部,blob剛剛初始化,執行這兩個的時候不存在?

  3. 此外,當我測試 POST 方法時,控制台會拋出“拒絕加載字體”,因為它違反了以下內容安全策略指令:“default-src 'none'”。 請注意,'font-src' 未明確設置,因此使用 'default-src' 作為后備。” 我用谷歌搜索但不知道它是什么意思? 我嘗試了不同的方法,但一直無法發布/“但無法真正找到可靠的答案。 這可能與我的 POST 方法有關嗎?

我知道“blobClient”是對 blob 的引用,我可以在其中獲取文件的數據,但這一定是錯誤的嗎?

從某種意義上說,這是正確的,您可以使用blobClient對 blob 執行上傳/下載等操作。我不確定您為什么這么說, but this must be wrong

此外,似乎我不能使用“CloudBlobContainer”或“CloudBlockBlob blob”。 是不是因為在POST方法內部,blob剛剛初始化,執行這兩個的時候不存在?

不,發生這種情況是因為您使用的是較新版本的SDK (version 12.xx) ,並且較舊版本的 SDK 中提供了CloudBlobContainerCloudBlockBlob

此外,當我測試 POST 方法時,控制台會拋出“拒絕加載字體”,因為它違反了以下內容安全策略指令:“default-src 'none'”。 請注意,'font-src' 未明確設置,因此使用 'default-src' 作為后備。” 我用谷歌搜索但不知道它是什么意思? 我嘗試了不同的方法,但一直無法發布/“但無法真正找到可靠的答案。 這可能與我的 POST 方法有關嗎?

不知道為什么會這樣。 您可能想為此提出一個單獨的問題,當您這樣做時,也請包括您的代碼的 HTML 部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM