This link talks about performance and bypass the portal. To me a WCF service that authenticates is similar to a portal.
A lightweight service authenticates the client as needed and then generates a SAS. Once the client receives the SAS, they can access storage account resources directly with the permissions defined by the SAS and for the interval allowed by the SAS. The SAS mitigates the need for routing all data through the front-end proxy service.
The application is a thick .NET WPF client communicating with a WFC service hosted in an Azure App using Azure AD for authentication.
It is a document management application so lots of file transfer. Search and search results is a relatively small amount of traffic. Need search to be responsive.
Is it over optimization to use SAS for file upload and download?
The other option is to upload and download the files via the WCF service.
What would be some gotcha for one or the other?
My thought is I would like to keep the files off the WCF service to keep it responsive.
If this should be a separate question then fine. The client gets the results of the search 1000 at a time. Even with a long expiration on the SAS it could expire if the they left the results up hours. If the SAS is a Property binding how might I detect an expired SAS? Each file has a unique ID in the application. Would it be better to just request the SAS in the get?
Have cases where a user may access almost every file in the in search results and others where they may only access 1 of 100 based on information in the search results. They may be running some large searches to get counts only and access zero files.