Example #1
0
        /// <summary>
        /// Declaring file uploaded. Set file status to 'Complete'. If the specified file size does not match to the actual, the actual will be set.
        /// </summary>
        /// <param name="fileId">The file identifier.</param>
        /// <param name="blobUploadCompleteRequest">The BLOB upload complete request.</param>
        /// <returns>Success HTTP Status Code 200</returns>
        public async Task <HttpResponse> FileUploadCompleteAsync(Int32 fileId, BlobUploadCompleteRequest blobUploadCompleteRequest)
        {
            var uriMethod          = String.Format(QuickbloxMethods.CompleteUploadByFileIdMethod, fileId);
            var headers            = RequestHeadersBuilder.GetDefaultHeaders().GetHeaderWithQbToken(this.quickbloxClient.Token);
            var fileUploadResponse = await HttpService.PutAsync <Object, BlobUploadCompleteRequest>(this.quickbloxClient.ApiEndPoint,
                                                                                                    uriMethod,
                                                                                                    blobUploadCompleteRequest,
                                                                                                    headers);

            return(fileUploadResponse);
        }
Example #2
0
        public async Task <int?> UploadPrivateImageAsync(byte[] imageBytes)
        {
            var createFileRequest = new CreateFileRequest()
            {
                Blob = new BlobRequest()
                {
                    Name     = String.Format("image_{0}.jpeg", Guid.NewGuid()),
                    IsPublic = false
                }
            };

            var createFileInfoResponse = await client.ContentClient.CreateFileInfoAsync(createFileRequest);

            if (await HandleResponse(createFileInfoResponse, HttpStatusCode.Created))
            {
                var uploadFileRequest = new UploadFileRequest
                {
                    BlobObjectAccess = createFileInfoResponse.Result.Blob.BlobObjectAccess,
                    FileContent      = new BytesContent()
                    {
                        Bytes       = imageBytes,
                        ContentType = "image/jpg",
                    }
                };

                var uploadFileResponse = await client.ContentClient.FileUploadAsync(uploadFileRequest);

                if (!await HandleResponse(createFileInfoResponse, HttpStatusCode.Created))
                {
                    return(null);
                }

                var blobUploadCompleteRequest = new BlobUploadCompleteRequest
                {
                    BlobUploadSize = new BlobUploadSize()
                    {
                        Size = (uint)imageBytes.Length
                    }
                };
                var response = await client.ContentClient.FileUploadCompleteAsync(createFileInfoResponse.Result.Blob.Id, blobUploadCompleteRequest);

                if (!await HandleResponse(response, HttpStatusCode.OK))
                {
                    return(null);
                }
                return(createFileInfoResponse.Result.Blob.Id);
            }
            else
            {
                return(null);
            }
        }
        public async Task <ImageUploadResult> UploadPublicImage(byte[] imageBytes)
        {
            var imageUploadResult = new ImageUploadResult();

            var createFileRequest = new CreateFileRequest()
            {
                Blob = new BlobRequest()
                {
                    Name     = $"image_{Guid.NewGuid()}.jpeg",
                    IsPublic = true
                }
            };

            var createFileInfoResponse = await quickbloxClient.ContentClient.CreateFileInfoAsync(createFileRequest);

            if (createFileInfoResponse.StatusCode != HttpStatusCode.Created)
            {
                return(null);
            }

            imageUploadResult.BlodId = createFileInfoResponse.Result.Blob.Id;

            var uploadFileRequest = new UploadFileRequest
            {
                BlobObjectAccess = createFileInfoResponse.Result.Blob.BlobObjectAccess,
                FileContent      = new BytesContent()
                {
                    Bytes       = imageBytes,
                    ContentType = "image/jpg",
                }
            };

            var uploadFileResponse = await quickbloxClient.ContentClient.FileUploadAsync(uploadFileRequest);

            if (uploadFileResponse.StatusCode != HttpStatusCode.Created)
            {
                return(null);
            }

            imageUploadResult.Url = uploadFileResponse.Result.Location;

            var blobUploadCompleteRequest = new BlobUploadCompleteRequest
            {
                BlobUploadSize = new BlobUploadSize()
                {
                    Size = (uint)imageBytes.Length
                }
            };
            var response = await quickbloxClient.ContentClient.FileUploadCompleteAsync(createFileInfoResponse.Result.Blob.Id, blobUploadCompleteRequest);

            return(imageUploadResult);
        }
        public async Task FileUploadSuccessTest()
        {
            var settings = new CreateFileRequest()
            {
                Blob = new BlobRequest()
                {
                    Name = String.Format("museum_{0}.jpeg", Guid.NewGuid()),
                }
            };

            var createFileInfoResponse = await this.client.ContentClient.CreateFileInfoAsync(settings);

            Assert.AreEqual(createFileInfoResponse.StatusCode, HttpStatusCode.Created);

            var uploadFileRequest = new UploadFileRequest();

            uploadFileRequest.BlobObjectAccess = createFileInfoResponse.Result.Blob.BlobObjectAccess;

            var uri         = new Uri("ms-appx:///Modules/ContentModule/Assets/1.jpg");
            var storageFile = await StorageFile.GetFileFromApplicationUriAsync(uri);

            var stream = await storageFile.OpenReadAsync();

            var bytes = new byte[stream.Size];

            using (var dataReader = new DataReader(stream))
            {
                await dataReader.LoadAsync((uint)stream.Size);

                dataReader.ReadBytes(bytes);
            }

            uploadFileRequest.FileContent = new BytesContent()
            {
                Bytes       = bytes,
                ContentType = "image/jpg",
            };

            var uploadFileResponse = await this.client.ContentClient.FileUploadAsync(uploadFileRequest);

            Assert.AreEqual(uploadFileResponse.StatusCode, HttpStatusCode.Created);

            var blobUploadCompleteRequest = new BlobUploadCompleteRequest();

            blobUploadCompleteRequest.BlobUploadSize = new BlobUploadSize()
            {
                Size = (uint)bytes.Length
            };
            var uploadFileCompleteResponse = await this.client.ContentClient.FileUploadCompleteAsync(createFileInfoResponse.Result.Blob.Id, blobUploadCompleteRequest);

            Assert.AreEqual(uploadFileCompleteResponse.StatusCode, HttpStatusCode.OK);
        }
        private async Task <bool> DeclareFileUploaded(int uploadedFileSize, int blobId)
        {
            var blobUploadCompleteRequest = new BlobUploadCompleteRequest
            {
                BlobUploadSize = new BlobUploadSize()
                {
                    Size = (uint)uploadedFileSize
                }
            };
            var uploadCompleteResponse = await quickbloxClient.ContentClient.FileUploadCompleteAsync(blobId, blobUploadCompleteRequest);

            return(uploadCompleteResponse.StatusCode == HttpStatusCode.OK);
        }
		public async Task<int?> UploadPrivateImageAsync(byte[] imageBytes)
		{
			var createFileRequest = new CreateFileRequest()
			{
				Blob = new BlobRequest()
				{
					Name = String.Format("image_{0}.jpeg", Guid.NewGuid()),
					IsPublic = false
				}
			};

			var createFileInfoResponse = await client.ContentClient.CreateFileInfoAsync(createFileRequest);

			if (await HandleResponse (createFileInfoResponse, HttpStatusCode.Created)) {
				var uploadFileRequest = new UploadFileRequest {
					BlobObjectAccess = createFileInfoResponse.Result.Blob.BlobObjectAccess,
					FileContent = new BytesContent () {
						Bytes = imageBytes,
						ContentType = "image/jpg",
					}
				};

				var uploadFileResponse = await client.ContentClient.FileUploadAsync (uploadFileRequest);

				if (!await HandleResponse (createFileInfoResponse, HttpStatusCode.Created))
					return null;

				var blobUploadCompleteRequest = new BlobUploadCompleteRequest {
					BlobUploadSize = new BlobUploadSize () { Size = (uint)imageBytes.Length }
				};
				var response = await client.ContentClient.FileUploadCompleteAsync (createFileInfoResponse.Result.Blob.Id, blobUploadCompleteRequest);
				if (!await HandleResponse (response, HttpStatusCode.OK))
					return null;
				return createFileInfoResponse.Result.Blob.Id;
			} else {
				return null;
			}
		}