Max file download size with 'Download with Interlink '

Jul 28, 2011 at 7:30 PM

What is the maximum download size supported by 'download with Interlink'. We wanted to download upto 6 GB.

Coordinator
Jul 28, 2011 at 8:09 PM

There is no imposed restriction by HSS Interlink. The only restriction would be Silverlight/.NET and the connection between your client/server and hard-drives read/write speeds. Though HSS Interlink could handle 6GB it may be a less than desired user experience.

Testing on a mocked up network with a transfer rate of about ~1MG/sec. would take approximatley 94 minutes (an hour and half) to download. You would have to test in your specific environment to get accurate estimates.

If you do test, please share your findings.

Coordinator
Jul 30, 2011 at 5:22 PM

To achieve the highest possible speeds, you should use the static method DownloadFileDialog.OpenFileAsAttachment(fileName); which will prompt the user to Open or SaveAs where they can click SaveAs. This is identifical to navigating to a remote file directly from a performance perspective and gives the user the fastest possible download speed available for their connection to your web server. On my personal private network, I can get upto 12MB/sec using this method, if I download into Silverlight directly I can get upto 7MB/s.

Aug 5, 2011 at 7:55 AM
Edited Aug 5, 2011 at 8:06 AM

Hi Everyone,

I was trying to use this library and found some issues:

1. The method DownloadFileDialog.DownloadFilesHidden(downloadUrl, fileDialog.SafeFileName, localFileStream, DataDownloadComplete, fileDialog.SafeFileName); sends a "POST" request by default there is no way to tell the library that I want to send a "GET" request. Therefore, I had to explore and modify the library source code to make it work for "GET" request, though it is a small change but time consuming. The library should expose a method or and extra param to the existing method in which developers can pass what they want to send a POST/GET request.

2. Library is using WebClient to download data from the server and using WebClient you cannot achieve the large file download. I have tested it the browser memory keeps on growing and file size remains zero on disk during the download because the library is writing data on local stream only on GetRequestCompleted(object sender, OpenReadCompletedEventArgs e) event. Therefore there is no point that it could download up to 6GB file. I have run multiple tests and it fails on around 680 MB. It is possible to download file up to 1.8GB if you turn on AllowReadStreamBuffering and handle the stream manually with WebClient. But it is still challenging to download files up to 6GB.

Coordinator
Aug 5, 2011 at 2:16 PM

1. To clarify, all of the download methods use the same internal protocol which informs your server side file handler that it's beginning a download by posting metadata and doing a security check, but the actual download does NOT use a POST, it uses a GET and does not require you to modify the source code.
2. HSS Interlink uses the WebClient to ensure the download can run Out-of-Browser and In-Browser. The restrictions are restrictions of Silverlight, and not HSS Interlink. And AllowReadStreamBuffering is on by default which allows the content to be streamed into memory (which allows the progress events of the underlying BrowserHttpWebRequest to report progress) and again is a Silverlight design. This is true except for the OpenFileAsAttachment (mentioned above) method which is identical to navigating to a remote file directly and uses the browser to download directly to the users local file system, but still allowing you to leverage your Server Side File Handler. Using this method allows the best download speed if your goal is to merely download files as fast as possible. If you have smaller files or more common file sizes and want to retain control over the download progress or the ability to download to an in-memory stream, then the other methods provided by HSS Interlink are recommended.

If you need to do large file transfers than I recommend using FTP etc. as appropriate for your situation.

Jul 22, 2012 at 8:37 PM

I guess "OpenFileAttachment" doesn't work in OOB Silverlight apps, correct?

Coordinator
Jul 23, 2012 at 8:01 PM

I don't see why it wouldn't...

Jul 23, 2012 at 8:52 PM

Since OOB is running outside of the browser, I thought it wouldn't, but indeed it could launch the default browser (Safari on OS-X maybe?) to do the download. Not sure though

Coordinator
Jul 23, 2012 at 10:46 PM

In OOB it's no different than clicking a link from within a Win Form or WPF application.