Merhaba arkadaşlar,
Bugün sizlerle D365 || Ax 7 ile kullanabileceğimiz Ax yazılımcıları için yeni bir özellik olan Azure Blob Storage özelliğini nasıl kullanırız, anlatmaya çalışacağım.
Ax 7 ile birlikte artık verilerimiz Azure ortamında yani bulutta olduğu için bazı dosyalarımızı dışarıya açıp, url oluşturup indirebilme gibi özellikleri kullanabilmemiz sağlanıyor.
Örneğin; Serverda dizine yazdığımız bir pdf dosyasını herkesle paylaşmak için link oluşturup paylaşabiliriz.
Linkin aktif kalma süresini belirtebiliyoruz. Mesela 30 gün sonra bu linke erişim kaldırılsın ve ulaşılamasın gibi kriterler belirtebiliyoruz.
Bu bilgilerden sonra kod işlemlerine geçiyorum.
Aşağıda ki job ile herhangi bir dosyayı Azure Storage yazıp paylaşabilirsiniz.
Bu örnekte ben 10 gün süre belirtim.
uploadedBlobInfo tanımının yapıldığı yerde görebilirsiniz.
class SemBlobStorageTestJob { ////// Runs the class with the specified arguments. /// /// The specified arguments. public static void main(Args _args) { str fileId; str downloadUrl; System.IO.Stream _stream; str _fileName = "TestSemihData.txt"; str _filePath = @"C:\Windows\Temp\testSemih.txt"; str fileNameAZ = strFmt('%1/%2', fileId, _fileName);//filename = Filename.Xlsx guid fileGuid = newGuid(); ; fileId = guid2str(fileGuid); _stream = File::UseFileFromURL(_filePath);//filepath = C://Temp//Filename.Xlsx var blobInfo = new Microsoft.DynamicsOnline.Infrastructure.Components.SharedServiceUnitStorage.SharedServiceUnitStorageData(); blobInfo.Id = fileId; blobInfo.Category = "StorageFolder";//Folder name blobInfo.Name = fileNameAZ; blobInfo.Accessibility = Microsoft.DynamicsOnline.Infrastructure.Components.SharedServiceUnitStorage.Accessibility::Private; blobInfo.Retention = Microsoft.DynamicsOnline.Infrastructure.Components.SharedServiceUnitStorage.Retention::Permanent; if (_stream.CanSeek) { _stream.Seek(0, System.IO.SeekOrigin::Begin); } var blobStorageService = new Microsoft.DynamicsOnline.Infrastructure.Components.SharedServiceUnitStorage.SharedServiceUnitStorage(Microsoft.DynamicsOnline.Infrastructure.Components.SharedServiceUnitStorage.SharedServiceUnitStorage::GetDefaultStorageContext()); blobStorageService.UploadData(blobInfo, _stream); var uploadedBlobInfo = blobStorageService.GetData(fileId, "StorageFolder", Microsoft.DynamicsOnline.Infrastructure.Components.SharedServiceUnitStorage.BlobUrlPermission::Read, System.TimeSpan::FromDays(10)); //Time span for keeping the file at azure location. downloadUrl = uploadedBlobInfo.BlobLink; info(strFmt("Dosya yüklendi. Link : %1", downloadUrl)); } }
Ekran çıktısı;
Oluşan URL’yi tarayıcıya yapıştırıp giderek, dosyayı download edebiliyoruz.
Bir başka yazımda görüşmek üzere, iyi çalışmalar.
ellerine sağlık
Teşekkürler