[英]POST method to upload file to Azure storage - what to return
我正在創建一個應用程序
如果可能的話,我想
所以我在 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");
}
我遇到的問題是
我知道“blobClient”是對 blob 的引用,我可以在其中獲取文件的數據,但這一定是錯誤的嗎?
此外,似乎我不能使用“CloudBlobContainer”或“CloudBlockBlob blob”。 是不是因為在POST方法內部,blob剛剛初始化,執行這兩個的時候不存在?
此外,當我測試 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 中提供了CloudBlobContainer
和CloudBlockBlob
。
此外,當我測試 POST 方法時,控制台會拋出“拒絕加載字體”,因為它違反了以下內容安全策略指令:“default-src 'none'”。 請注意,'font-src' 未明確設置,因此使用 'default-src' 作為后備。” 我用谷歌搜索但不知道它是什么意思? 我嘗試了不同的方法,但一直無法發布/“但無法真正找到可靠的答案。 這可能與我的 POST 方法有關嗎?
不知道為什么會這樣。 您可能想為此提出一個單獨的問題,當您這樣做時,也請包括您的代碼的 HTML 部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.