Я пытаюсь загрузить строку JSON (сериализованную с Newtonsoft. Json) без создания временного файла.
Я сериализую объект во время выполнения, используя JsonConvert.SerializeObject (obj, settings), который возвращает строку.
Следуя документации Microsoft, я мог бы сделать, как показано ниже:
// Create a local file in the ./data/ directory for uploading and downloading
string localPath = "./data/";
string fileName = "quickstart" + Guid.NewGuid().ToString() + ".txt";
string localFilePath = Path.Combine(localPath, fileName);
// Write text to the file
await File.WriteAllTextAsync(localFilePath, "Hello, World!");
// Get a reference to a blob
BlobClient blobClient = containerClient.GetBlobClient(fileName);
Console.WriteLine("Uploading to Blob storage as blob:\n\t {0}\n", blobClient.Uri);
// Open the file and upload its data
using FileStream uploadFileStream = File.OpenRead(localFilePath);
await blobClient.UploadAsync(uploadFileStream, true);
uploadFileStream.Close();
Хотя это работает, мне нужно будет создать временный файл для каждого загруженного JSON file.
Я попробовал это:
BlobServiceClient blobServiceClient = new BlobServiceClient("SECRET");
BlobContainerClient container = BlobServiceClient.GetBlobContainerClient("CONTAINER_NAME");
container.CreateIfNotExistsAsync().Wait();
container.SetAccessPolicy(Azure.Storage.Blobs.Models.PublicAccessType.Blob);
CloudBlockBlob cloudBlockBlob = new CloudBlockBlob(container.Uri);
var jsonToUplaod = JsonConvert.SerializeObject(persons, settings);
cloudBlockBlob.UploadTextAsync(jsonToUpload).Wait();
Но, хорошо ... он не имеет права работать, так как я не указываю какой-либо фактический файл в данном контейнере (Я не знаю, где это сделать).
Есть ли способ загрузить BLOB-объект непосредственно в данный контейнер?
Заранее спасибо.