public DownloadFileCommand(BaseSpaceClient client, string fileId, Stream stream, IClientSettings settings, CancellationToken token = new CancellationToken()) { _client = client; _settings = settings; _stream = stream; _file = _client.GetFilesInformation(new GetFileInformationRequest(fileId), null).Response; Token = token; ChunkSize = Convert.ToInt32(_settings.FileMultipartSizeThreshold); MaxRetries = Convert.ToInt32(_settings.RetryAttempts); }
public DownloadFileCommand(BaseSpaceClient client, FileCompact file, Stream stream, IClientSettings settings, CancellationToken token = new CancellationToken()) { _client = client; _settings = settings; _stream = stream; _file = file; Token = token; ChunkSize = Convert.ToInt32(_settings.FileMultipartSizeThreshold); MaxRetries = Convert.ToInt32(_settings.RetryAttempts); }
public DownloadFileCommand(BaseSpaceClient client, FileCompact file, string targetFileName, IClientSettings settings, CancellationToken token = new CancellationToken(), bool enableLogging = true, int threadCount = DEFAULT_THREADS) { DateTime expiration; string url = GetFileContentUrl(client, file.Id, out expiration); ILargeFileDownloadParameters parameters = new LargeFileDownloadParameters(new Uri(url), targetFileName, maxThreads: threadCount, maxChunkSize: (int?)settings.FileDownloadMultipartSizeThreshold, id: file.Id); _parameters = parameters; _token = token; _enableLogging = enableLogging; }
public DownloadFileCommand(BaseSpaceClient client, FileCompact file, string targetFileName, IClientSettings settings, int threadCount, int maxChunkSize, CancellationToken token = new CancellationToken(), bool enableLogging = true) { DateTime expiration; string url = GetFileContentUrl(client, file.Id, out expiration); _fileName = string.Format("[{0}],{1}", file.Id, file.Name); ILargeFileDownloadParameters parameters = new LargeFileDownloadParameters(new Uri(url), targetFileName, maxThreads: threadCount, maxChunkSize: maxChunkSize, id: file.Id); _parameters = parameters; _token = token; _enableLogging = enableLogging; }
public DownloadFileCommand(BaseSpaceClient client, string fileId, Stream stream, IClientSettings settings, CancellationToken token = new CancellationToken(), IWebProxy proxy = null, bool enableLogging = true) { DateTime expiration; string url = GetFileContentUrl(client, fileId, out expiration); #pragma warning disable 618 ILargeFileDownloadParameters parameters = new LargeFileDownloadWithStreamParameters(new Uri(url), stream, 0, id: fileId, maxThreads: DEFAULT_THREADS, maxChunkSize: (int)settings.FileDownloadMultipartSizeThreshold, autoCloseStream: false, verifyLength: true); #pragma warning restore 618 _parameters = parameters; _token = token; _proxy = proxy; _enableLogging = enableLogging; }
private static string GetFileContentUrl(BaseSpaceClient client, string fileId, out DateTime expiration) { // get the download URL var response = client.GetFileContentUrl(new FileContentRedirectMetaRequest(fileId)); if (response.Response == null || response.Response.HrefContent == null) { throw new ApplicationException("Unable to get HrefContent"); } if (!response.Response.SupportsRange) { throw new ApplicationException("This file does not support range queries"); } expiration = response.Response.Expires; return(response.Response.HrefContent); }
public DownloadFileCommand(BaseSpaceClient client, FileCompact file, Stream stream, IClientSettings settings, CancellationToken token = new CancellationToken(), IWebProxy proxy = null, bool enableLogging = true) : this(client, file.Id, stream, settings, token, proxy, enableLogging) { }