private static void PutBlob(string name, byte[] buffer) { if (!AzureBlogStorageUtil.BlobExists(azureStorageBaseURL + name)) { AzureBlogStorageUtil.PutBlob(azureStorageBaseURL + name, azureStorageAccountName, azureStorageAccountKey, buffer, "image/jpeg"); } }
private static void ImportPhotoBlobs() { var rootPhotoPath = @"http://imdt.friendsofdt.org/"; var media_items = oldDatabaseConnection.Query("SELECT * FROM media_items").ToList(); Log("Importing " + media_items.Count + " Media Blobs"); var count = 0; foreach (var _row in media_items) { var entity = new Photo(); if (_row.guid == null) { throw new InvalidOperationException("Media Item is Missing GUID. Row needs to be updated before Importing"); } Guid guid = _row.guid; entity.PhotoId = (int)_row.ID; entity.GUID = (Guid)_row.guid; byte[] original = null; original = AzureBlogStorageUtil.DownloadPublicBlob(rootPhotoPath + _row.item.ToString().Replace("./", "")); if (original == null) { Log("Missing File!" + _row.item.ToString()); continue; } var fullSize = ImageUtilities.LoadBitmap(original); var thumbnail = ImageUtilities.GetBytes(ImageUtilities.Resize(fullSize, 240, 240), ImageFormat.Jpeg); var tiny = ImageUtilities.GetBytes(ImageUtilities.Resize(fullSize, 50, 50), ImageFormat.Jpeg); PutBlob(entity.GetOriginalFileName(), original); PutBlob(entity.GetThumbnailFileName(), thumbnail); PutBlob(entity.GetTinyFileName(), tiny); if (fullSize.Width > 600 || fullSize.Height > 800) { entity.LargeFileIsSameAsOriginal = false; // original image is too large for general display var large = ImageUtilities.GetBytes(ImageUtilities.Resize(fullSize, 600, 800), ImageFormat.Jpeg); PutBlob(entity.GetLargeFileName(), large); } count++; if (count % 100 == 0) { Log("Imported " + count + " Photo Blobs"); } } Log("Imported " + count + " Photo Blobs"); }
public static Photo Upload(BaseController controller, UploadPOSTParameters param) { var photo = new Photo(); controller.DatabaseSession.Save(photo); controller.DatabaseSession.Flush(); // to get the ID var unique_id = photo.PhotoId.ToString(); var original_buffer = new byte[param.Photo.ContentLength]; param.Photo.InputStream.Read(original_buffer, 0, param.Photo.ContentLength); using (var originalBitmap = ImageUtilities.LoadBitmap(original_buffer)) { AzureBlogStorageUtil.PutBlob(photo.GetOriginalFileURL() , azureStorageAccountName, azureStorageAccountKey , ImageUtilities.GetBytes(originalBitmap, ImageFormat.Jpeg), "image/jpeg"); if (originalBitmap.Width > 600 || originalBitmap.Height > 800) { // original image is too large for general display photo.LargeFileIsSameAsOriginal = false; using (var largeBitmap = ImageUtilities.Resize(originalBitmap, 600, 800)) { AzureBlogStorageUtil.PutBlob(photo.GetLargeFileURL() , azureStorageAccountName, azureStorageAccountKey , ImageUtilities.GetBytes(largeBitmap, ImageFormat.Jpeg), "image/jpeg"); } } using (var thumbnailBitmap = ImageUtilities.Resize(originalBitmap, 240, 240)) { AzureBlogStorageUtil.PutBlob(photo.GetThumbnailFileURL() , azureStorageAccountName, azureStorageAccountKey , ImageUtilities.GetBytes(thumbnailBitmap, ImageFormat.Jpeg), "image/jpeg"); } using (var tinyBitmap = ImageUtilities.Resize(originalBitmap, 50, 50)) { AzureBlogStorageUtil.PutBlob(photo.GetTinyFileURL() , azureStorageAccountName, azureStorageAccountKey , ImageUtilities.GetBytes(tinyBitmap, ImageFormat.Jpeg), "image/jpeg"); } } return(photo); }
private static void FixLargePhotoFlag() { var rootPhotoPath = @"http://imdt.friendsofdt.org/"; var media_items = oldDatabaseConnection.Query("SELECT * FROM media_items").ToList(); Log("Checking " + media_items.Count + " Media Blobs For Large Images"); var count = 0; foreach (var _row in media_items) { if (_row.guid == null) { throw new InvalidOperationException("Media Item is Missing GUID. Row needs to be updated before Importing"); } var photoID = (int)_row.ID; byte[] original = null; original = AzureBlogStorageUtil.DownloadPublicBlob(rootPhotoPath + _row.item.ToString().Replace("./", "")); if (original == null) { Log("Missing File!" + _row.item.ToString()); continue; } using (var fullSize = ImageUtilities.LoadBitmap(original)) { if (fullSize.Width > 600 || fullSize.Height > 800) { // original image is too large for general display using (var session = sessionFactory.OpenSession()) { session.Execute("UPDATE dbo.Photo SET LargeFileIsSameAsOriginal = 0 WHERE PhotoId = @PhotoId", new { PhotoId = photoID }); } count++; } } } Log("Fixed " + count + " Large Photos"); }