Exemplo n.º 1
0
        public async Task UploadDownloadMultipart()
        {
            byte[] data = new byte[10 * 1024 * 1024]; //10 Mb

            for (int i = 0; i < data.Length; i++)
            {
                data[i] = (byte)(i % 255);
            }

            MultipartUploadStatus ulStatus = await Transfer.Upload(BucketName, nameof(UploadDownloadMultipart))
                                             .UploadMultipartAsync(new MemoryStream(data))
                                             .ConfigureAwait(false);

            Assert.Equal(MultipartUploadStatus.Ok, ulStatus);

            using (MemoryStream ms = new MemoryStream())
            {
                MultipartDownloadStatus dlStatus = await Transfer.Download(BucketName, nameof(UploadDownloadMultipart))
                                                   .DownloadMultipartAsync(ms)
                                                   .ConfigureAwait(false);

                Assert.Equal(MultipartDownloadStatus.Ok, dlStatus);
                Assert.Equal(data, ms.ToArray());
            }
        }
Exemplo n.º 2
0
        public async Task MultipartViaClient()
        {
            byte[] data = new byte[10 * 1024 * 1024]; //10 Mb

            for (int i = 0; i < data.Length; i++)
            {
                data[i] = (byte)(i % 255);
            }

            using (MemoryStream ms = new MemoryStream(data))
            {
                MultipartUploadStatus resp = await MultipartClient.MultipartUploadAsync(BucketName, nameof(MultipartViaClient), ms, 5 * 1024 * 1024).ConfigureAwait(false);

                Assert.Equal(MultipartUploadStatus.Ok, resp);
            }

            GetObjectResponse getResp = await ObjectClient.GetObjectAsync(BucketName, nameof(MultipartViaClient)).ConfigureAwait(false);

            Assert.True(getResp.IsSuccess);

            using (MemoryStream ms = new MemoryStream())
            {
                await getResp.Content.CopyToAsync(ms).ConfigureAwait(false);

                Assert.Equal(data, ms.ToArray());
            }

            //Try multipart downloading it
            using (MemoryStream ms = new MemoryStream())
            {
                await MultipartClient.MultipartDownloadAsync(BucketName, nameof(MultipartViaClient), ms).ConfigureAwait(false);

                Assert.Equal(data, ms.ToArray());
            }

            HeadObjectResponse headResp = await ObjectClient.HeadObjectAsync(BucketName, nameof(MultipartViaClient), req => req.PartNumber = 1).ConfigureAwait(false);

            Assert.Equal(2, headResp.NumberOfParts);
        }
Exemplo n.º 3
0
        public async Task MultipartFluid()
        {
            byte[] data = new byte[10 * 1024 * 1024]; //10 Mb

            for (int i = 0; i < data.Length; i++)
            {
                data[i] = (byte)(i % 255);
            }

            MultipartUploadStatus resp = await Transfer.UploadData(BucketName, nameof(MultipartFluid), data)
                                         .ExecuteMultipartAsync()
                                         .ConfigureAwait(false);

            Assert.Equal(MultipartUploadStatus.Ok, resp);

            GetObjectResponse getResp = await ObjectClient.GetObjectAsync(BucketName, nameof(MultipartViaClient)).ConfigureAwait(false);

            Assert.True(getResp.IsSuccess);

            using (MemoryStream ms = new MemoryStream())
            {
                await getResp.Content.CopyToAsync(ms).ConfigureAwait(false);

                Assert.Equal(data, ms.ToArray());
            }

            //TODO: Need Download Transfer support first
            //Try multipart downloading it
            //using (MemoryStream ms = new MemoryStream())
            //{
            //    await ObjectClient.MultipartDownloadAsync(BucketName, nameof(MultipartViaClient), ms).ConfigureAwait(false);
            //    Assert.Equal(data, ms.ToArray());
            //}

            HeadObjectResponse headResp = await ObjectClient.HeadObjectAsync(BucketName, nameof(MultipartViaClient), req => req.PartNumber = 1).ConfigureAwait(false);

            Assert.Equal(2, headResp.NumberOfParts);
        }