Ejemplo n.º 1
0
        /// <summary>
        /// get an upload url for use with one Thread.
        /// </summary>
        /// <param name="bucketId"></param>
        /// <param name="cancelToken"></param>
        /// <returns></returns>
        public async Task <B2UploadUrl> GetUploadUrl(string bucketId = "", CancellationToken cancelToken = default(CancellationToken))
        {
            var operationalBucketId = Utilities.DetermineBucketId(_options, bucketId);

            // send the request.
            var uploadUrlRequest  = FileUploadRequestGenerators.GetUploadUrl(_options, operationalBucketId);
            var uploadUrlResponse = await _client.SendAsync(uploadUrlRequest, cancelToken);

            // parse response and return it.
            var uploadUrl = await ResponseParser.ParseResponse <B2UploadUrl>(uploadUrlResponse);

            // Set the upload auth token
            _options.UploadAuthorizationToken = uploadUrl.AuthorizationToken;

            return(uploadUrl);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// DEPRECATED: This method has been deprecated in favor of the Upload that takes an UploadUrl parameter.
        /// The other Upload method is the preferred, and more efficient way, of uploading to B2.
        /// </summary>
        /// <param name="fileData"></param>
        /// <param name="fileName"></param>
        /// <param name="bucketId"></param>
        /// <param name="cancelToken"></param>
        /// <returns></returns>
        public async Task <B2File> Upload(byte[] fileData, string fileName, string bucketId = "", Dictionary <string, string> fileInfo = null, CancellationToken cancelToken = default(CancellationToken))
        {
            var operationalBucketId = Utilities.DetermineBucketId(_options, bucketId);

            // Get the upload url for this file
            var uploadUrlRequest  = FileUploadRequestGenerators.GetUploadUrl(_options, operationalBucketId);
            var uploadUrlResponse = _client.SendAsync(uploadUrlRequest, cancelToken).Result;
            var uploadUrlData     = await uploadUrlResponse.Content.ReadAsStringAsync();

            var uploadUrlObject = JsonConvert.DeserializeObject <B2UploadUrl>(uploadUrlData);

            // Set the upload auth token
            _options.UploadAuthorizationToken = uploadUrlObject.AuthorizationToken;

            // Now we can upload the file
            var requestMessage = FileUploadRequestGenerators.Upload(_options, uploadUrlObject.UploadUrl, fileData, fileName, fileInfo);
            var response       = await _client.SendAsync(requestMessage, cancelToken);

            return(await ResponseParser.ParseResponse <B2File>(response, _api));
        }