I have an MVC 5 web app hosted on Azure App Service. The application communicates with Azure blob storage and lists the blobs from each container. The application also allows users to download blobs to their local drive. All this works fine using IIS.
However, when I publish the app to Azure App Service, I receive access to this path is denied.
So my question is; how can I enable permissions on App Service to allow write access to a specific folder on a users PC?
I need to be able to download the blob contents to a users local drive.
If you granted the IIS App pool permissions to the download folder, you mean you download the files to the server machine right?
Your server has no access to the user's PC drive. You have to return the file as a result from your controller to initiate download via the user's browser.
I resolved this by creating a shared access signature for each of the blobs and appending this to the blob URI. This allows direct access to the blobs on Azure Blob Storage for authorised users.
Related
it is possible to give FTP user can access only Content folder on Azure webapp or else give access via azure Storage explore.
please help about it i just want to give permission to my client only for content folder via FTP or azure storage explorer so that he can only upload their content on Specific folder.
Simple answer, no. FTP is an ALL or Nothing scenario.
An option would be add a path mapping in the Configuration section and mount Azure Blob or Azure Files and create a Shared Access Signature to grant write permissions to your client.
In Azure I have 2 load balanced VMs with an IIS shared config. These are linked to a premium storage account. All up and running. I have persisted the premium fileshare to both VMs as a drive (S).
The wwwroot is on the storage account, along with the IIS config files.
The app pool is set up as the storage account password so I have access the the share.
All good up to this point.
My issue is that the app also needs to see data on another fileshare. (general fileshare, not premium). This will be used for storage and Archive.
The problem is that the IIS app pool is configured with the creds for the premium storage and fails when trying to also use the general storage.
Can this be done?
Is there a way to link to both fileshares in IIS or should I be looking somewhere else?
Thanks
Colin
how do I mount an azure webb app folder on VM, I've a webb App and a Virtual Machine and I need to mount the web app files and folders to my VM.
If it’s a local VM, you cannot mount the drive. However, you have ways to copy files/folders to and from Azure App Service.
You could use an FTP app or Kudu service.
Based on the WebApp App Service Plan the volume of the storage varies. You could use Kudu console (https://yoursite.scm.azurewebsites.net) to manage the files- it gives you both command line and file browser access to your sites, all from the comfort of a web browser.
Every Azure WebApp has a home directory stored/backed by Azure Storage. It is owned by Azure WebApp Service and cannot be chosen currently; however, you could select storage account for Azure WebApp Diagnostic logs.
Additionally, one of the unique aspects of App Service that makes app deployment and maintenance straightforward is that all user content is stored on a set of UNC shares. This model maps well to the common pattern of content storage used by on-premises web hosting environments that have multiple load-balanced servers.
Within App Service, there is a number of UNC shares created in each datacenter. A percentage of the user content for all customers in each data center is allocated to each UNC share. Furthermore, all of the file content for a single customer's subscription is always placed on the same UNC share.
Also, mapping Azure File Share isn't supported on Azure App Service:
https://feedback.azure.com/forums/169385-web-apps-formerly-websites/suggestions/6084609-allow-map-azure-file-share-microsoft-azure-file-s
it's impossibe,
you must use one of the five Azure auto deploy option, (Github, Bitbuket etc ..)
How to copy files programmatically from an azure storage blob to an in azure website?
The goal is to create a custom and manageable deployment.
With the new azure-sdk-for-net I can only deploy a site with public git.
You can use Dropbox/One drive for that: https://learn.microsoft.com/en-us/azure/app-service-web/app-service-deploy-content-sync
How to copy files programmatically from an azure storage blob to an in azure website? The goal is to create a custom and manageable deployment.
It seems that you’d like to upload/push files to Azure Web Site folder programmatically, as we know, Azure Web Site enables us to access its files via FTP, you could try to add some FTP client libraries in your project and upload files to Azure Web Site FTP server in your program. Besides, the Zip API allows expanding zip files into folder of Azure Web Site, you could pull files from Azure Blob storage in memory or local storage, and then upload and expand zip files into Azure Web Site folder by calling this API in your program.
Request of expanding zip files into folder of Azure Web Site
Note: accessing/downloading files from Azure storage will be charged.
My Azure API app uses the new Windows File storage API.
In the startup on my Azure API app I need to map to a UNC path. The 3rd party application we integrate with needs to reference a local/UNC path for files.
In doing so I am getting a Error: ERROR_ACCESS_DENIED
Is it possible to map a UNC path to Azure File Store in a Web/API app?
If so - is it possible to run the app pool under an elevated account?
Or can I map this drive before using a different account somehow?
Its possible to add a UNC path to an Azure File.
You may getting an access denied due to different user contexts between file share creation and access. Please check out the Persist your storage account credentials for the virtual machine section in this article: https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-files/
Additionally, you could use canned user (storage account name, key) credentials to run the app pool.