Есть ли тип изображения по умолчанию для хранилища BLOB-объектов Azure?

Когда я загружаю изображение в формате jpg в хранилище BLOB-объектов Azure, а затем извлекаю его обратно, оно всегда возвращается в виде PNG. Можно ли считать это дефолтом? Я не смог найти никакой документации. Я могу легко преобразовать его обратно в jpg при преобразовании байтов, поскольку я сохраняю расширение, когда вытаскиваю его из контейнера, но могу ли я с уверенностью предположить, что любой тип изображения, хранящийся в хранилище BLOB-объектов Azure, выполнен как png?


person User101    schedule 20.10.2017    source источник
comment
Можете поделиться кодом для загрузки изображения?   -  person Gaurav Mantri    schedule 20.10.2017


Ответы (2)


Лучше не предполагать, что по умолчанию используется png. Я думаю, это зависит от вашего механизма загрузки и имени, которое вы даете файлу в процессе загрузки.

person Amila    schedule 21.10.2017

но могу ли я с уверенностью предположить, что любой тип изображения, хранящийся в хранилище 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.

введите здесь описание изображения

В общем, тип файла, который вы загружаете на локальный компьютер или загружаете в большой двоичный объект, зависит от вашего набора при использовании кодов для его получения или загрузки.

person Brando Zhang    schedule 24.10.2017