public void TestReadRandomAccessHelperStrategyUsingStringAsTItem() { var helperStrategy = new ReadRandomAccessHelperStrategy<string>(); var chunkStrategy = helperStrategy.GetChunkStrategy(); var streamFactory = helperStrategy.GetStreamFactory(); Assert.AreEqual(typeof(ReadRandomAccessChunkStrategy), chunkStrategy.GetType()); Assert.AreEqual(typeof(ReadRandomAccessStreamFactory<string>), streamFactory.GetType()); }
internal static string GetSingleObjectWithRange(IDs3Client client, string bucketName, string objectName, Range range, IHelperStrategy<Ds3PartialObject> helperStrategy = null) { var tempFilename = Path.GetTempFileName(); using (Stream fileStream = new FileStream(tempFilename, FileMode.Truncate, FileAccess.Write)) { IDs3ClientHelpers helper = new Ds3ClientHelpers(client); if (helperStrategy == null) { helperStrategy = new ReadRandomAccessHelperStrategy<Ds3PartialObject>(); } var job = helper.StartPartialReadJob(bucketName, new List<string>(), new List<Ds3PartialObject> {new Ds3PartialObject(range, objectName)}, helperStrategy: helperStrategy); job.Transfer(key => fileStream); return tempFilename; } }
/// <summary> /// This will get the object and return the name of the temporary file it was written to. /// It is up to the caller to delete the temporary file /// </summary> public static string GetSingleObject(IDs3Client client, string bucketName, string objectName, int retries = 5, IHelperStrategy<string> helperStrategy = null) { var tempFilename = Path.GetTempFileName(); using (Stream fileStream = new FileStream(tempFilename, FileMode.Truncate, FileAccess.Write)) { IDs3ClientHelpers helper = new Ds3ClientHelpers(client, objectTransferAttempts: retries); if (helperStrategy == null) { helperStrategy = new ReadRandomAccessHelperStrategy<string>(); } var job = helper.StartReadJob(bucketName, new List<Ds3Object> {new Ds3Object(objectName, null)}, helperStrategy: helperStrategy); job.Transfer(key => fileStream); return tempFilename; } }