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()); } }
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); }
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); }