Когда я загружаю изображение в формате jpg в хранилище BLOB-объектов Azure, а затем извлекаю его обратно, оно всегда возвращается в виде PNG. Можно ли считать это дефолтом? Я не смог найти никакой документации. Я могу легко преобразовать его обратно в jpg при преобразовании байтов, поскольку я сохраняю расширение, когда вытаскиваю его из контейнера, но могу ли я с уверенностью предположить, что любой тип изображения, хранящийся в хранилище BLOB-объектов Azure, выполнен как png?
Есть ли тип изображения по умолчанию для хранилища BLOB-объектов Azure?
Ответы (2)
Лучше не предполагать, что по умолчанию используется png. Я думаю, это зависит от вашего механизма загрузки и имени, которое вы даете файлу в процессе загрузки.
но могу ли я с уверенностью предположить, что любой тип изображения, хранящийся в хранилище BLOB-объектов Azure, выполнен как png
Насколько мне известно, в хранилище BLOB-объектов нет типа файла по умолчанию. Он содержит content-type, который может сообщить пользователю тип содержимого файла. Если вы установите имя большого двоичного объекта xxx.jpg. Затем он сохранит xxx.jpg в хранилище BLOB-объектов.
Вот пример.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("connection string");
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
// Create the container if it doesn't already exist.
container.CreateIfNotExists();
CloudBlockBlob blockBlob = container.GetBlockBlobReference("brandotest.jpg");
// Create or overwrite the "myblob" blob with contents from a local file.
using (var fileStream = System.IO.File.OpenRead(@"D:\1.PNG"))
{
blockBlob.UploadFromStream(fileStream);
}
Результат:
Используя проводник хранилища, вы можете найти тип изображения в хранилище больших двоичных объектов. Это brandotest.jpg.
Я предполагаю, что вы устанавливаете тип файла загружаемого изображения, когда используете коды для его загрузки.
Вот так (я установил путь к файлу загрузки myfile.png):
CloudBlockBlob blockBlob = container.GetBlockBlobReference("brandotest.jpg");
// Save blob contents to a file.
using (var fileStream = System.IO.File.OpenWrite(@"D:\authserver\myfile.png"))
{
blockBlob.DownloadToStream(fileStream);
}
Результатом будет myfile.png.
В общем, тип файла, который вы загружаете на локальный компьютер или загружаете в большой двоичный объект, зависит от вашего набора при использовании кодов для его получения или загрузки.