derral
derral

Reputation: 91

Azure Edit blob

I have various file types that are uploaded into blob storage. I am needing to edit/read these files using third party tools (Exiftool, Imagemagick, etc. - I know I could possibly use the Media Services but I am required to use these tools). Once the files are in blob storage does my worker role have to download the blob from storage in order to work with the file? The reason for the questions is that I am working with very large files (videos, images, etc.) and I don't necessarily want to use MemoryStream.

If I have to download the file from storage into let's say a temporary folder, what is the performance hit and are there any other options for editing/reading the file?

Upvotes: 4

Views: 3012

Answers (1)

David Makogon
David Makogon

Reputation: 71118

Third-party tools will be working with the file system and it's unlikely they have built-in knowledge of the Azure REST API. So, you have two primary choices:

  1. Download blob to local disk, then provide local filename to 3rd-party tool. This download should be fairly efficient if the storage account and vm instances are in the same region. You'll be throttled based on storage account limits (you can read about scalability targets here) and the VM NIC (the higher-end VMs have bigger network bandwidth)
  2. Instead of working directly with blobs, create an Azure File Service SMB volume (which is backed by blob storage). This lets you mount the volume to your VM and work with it just like with the local file system (as long as your 3rd party tools can work with SMB volumes). Note: If you're already storing content directly in blobs, then File Service isn't really an option unless you choose to copy content into a File Service volume.

Option #1 will give you best performance with the tool itself, since it will work with a local copy. And you get 500TB per storage account.

Option #2 will let you point the tool at any file without copying, but the access itself will be over the local network and will be slower than accessing locally. You get 5TB per SMB volume.

Upvotes: 3

Related Questions