/// <summary> /// Gets a url for uploading files. /// </summary> /// <param name="bucketId">The ID of the bucket that you want to upload to.</param> /// <param name="cacheTTL">An absolute cache expiration time to live (TTL) relative to now.</param> /// <exception cref="AuthenticationException">Thrown when authentication fails.</exception> /// <exception cref="ApiException">Thrown when an error occurs during client operation.</exception> async Task <IApiResults <GetUploadUrlResponse> > IStorageFiles.GetUploadUrlAsync (string bucketId, TimeSpan cacheTTL) { var request = new GetUploadUrlRequest(bucketId); return(await _client.GetUploadUrlAsync(request, cacheTTL, _cancellationToken)); }
/// <summary> /// Sets up a GetUploadUrlRequest that will upload the bytes supplied to the correct /// location after the response has been received /// </summary> public static GetUploadUrlRequest GetUploadUrlRequestAndUploadFile(byte[] fileData, String fileName) { GetUploadUrlRequest r = new GetUploadUrlRequest(); r.AddCompleter(new FileUploader(fileData, fileName).Upload); return(r); }
public async Task <FileUrl> GetUploadUrlAsync(int expiryInMinutes = 5) { var request = new GetUploadUrlRequest { MimeType = this.MimeType, FileName = this.FileName, ExpiryInMinutes = expiryInMinutes }; var response = await request.ExecuteAsync(); return(new FileUrl(response.Filename, response.Url)); }
/// <summary> /// Uploads content by bucket id. /// </summary> /// <param name="request">The upload file request content to send.</param> /// <param name="content">The upload content to receive.</param> /// <param name="progress">A progress action which fires every time the write buffer is cycled.</param> /// <param name="cancel">The cancellation token to cancel operation.</param> public async Task <IApiResults <UploadFileResponse> > UploadAsync (UploadFileByBucketIdRequest request, Stream content, IProgress <ICopyProgress> progress, CancellationToken cancel) { return(await _policy.InvokeUpload.ExecuteAsync(async() => { if (content.Length < Options.UploadCutoffSize) { var urlRequest = new GetUploadUrlRequest(request.BucketId); var urlResults = await GetUploadUrlAsync(urlRequest, cancel).ConfigureAwait(false); if (urlResults.IsSuccessStatusCode) { var response = urlResults.Response; var fileRequest = new UploadFileRequest(response.UploadUrl, request.FileName, response.AuthorizationToken) { ContentType = request.ContentType, FileInfo = request.FileInfo }; return await UploadFileAsync(fileRequest, content, progress, cancel).ConfigureAwait(false); } return new ApiResults <UploadFileResponse>(urlResults.HttpResponse, urlResults.Error); } else { var largeFileRequest = new UploadLargeFileRequest(request.BucketId, request.FileName, content) { ContentType = request.ContentType, FileInfo = request.FileInfo }; return await UploadLargeFileAsync(largeFileRequest, progress, cancel).ConfigureAwait(false); } })); }
/// <summary> /// Begin a new GetUploadUrlRequest /// </summary> /// <param name="requestData"></param> /// <returns></returns> public GetUploadUrlResponse GetUploadUrlRequest(GetUploadUrlRequest requestData) { return(JsonConvert.DeserializeObject <GetUploadUrlResponse>(Requestor.PostString(Urls.GetUploadUrlRequest, JsonHelper.SerializeData(requestData)).ResponseJson)); }
/// <summary> /// Begin a new asynchronous GetUploadUrlRequest /// </summary> /// <param name="requestData"></param> /// <returns></returns> public async Task <GetUploadUrlResponse> GetUploadUrlRequestAsync(GetUploadUrlRequest requestData) { var res = await Requestor.PostStringAsync(Urls.GetUploadUrlRequest, JsonHelper.SerializeData(requestData)); return(JsonConvert.DeserializeObject <GetUploadUrlResponse>(res.ResponseJson)); }