public async Task CreateGetDestroyBlobs() { byte[] data1 = new byte[] { 0, 1, 2, 3, 4, 5 }; byte[] data2 = new byte[] { 10, 11, 12, 13, 14, 15 }; byte[] data3 = new byte[] { 20, 21, 22, 23, 24, 25 }; var dataSet = new byte[][] { data1, data2, data3 }; var blob1 = await _session.CreateBlobAsync(data1); var blob2 = await _session.CreateBlobAsync(data2); var blob3 = await _session.CreateBlobAsync(data3); blob1.Should().BeGreaterThan(0); blob2.Should().BeGreaterThan(0); blob3.Should().BeGreaterThan(0); blob1.Should().NotBe(blob2); blob2.Should().NotBe(blob3); blob3.Should().NotBe(blob1); var blobIds = new ulong[] { blob1, blob2, blob3 }; for (int i = 0; i < blobIds.Length; ++i) { var blob = await _session.GetBlobAsync(blobIds[i]); blob.Should().Equal(dataSet[i]); } await _session.DestroyBlobsAsync(blobIds); }
/// <summary> /// Gets the data for a given blob from R-Host. Saves the data to <paramref name="filePath"/>. This /// method adds the blob for clean up by default. /// </summary> /// <param name="blob">Blob from which the data is to be retrieved.</param> /// <param name="filePath">Path to the file where the retrieved data will be written.</param> /// <param name="doCleanUp">true to add blob upon transfer for cleanup on dispose, false to ignore it after transfer.</param> public async Task FetchFileAsync(IRBlobInfo blob, string filePath, bool doCleanUp = true) { var data = await _session.GetBlobAsync(blob.Id); _fs.FileWriteAllBytes(filePath, data); if (doCleanUp) { _cleanup.Add(blob); } }