private PosterUpdater GetUpdater() { var log = new Mock <ILogger <PosterUpdater> >(); var dbUpdaterLog = new Mock <ILogger <PosterDbUpdater> >(); var yandexStorageOptions = new YandexStorageOptions(); var options = Options.Create <YandexStorageOptions>(yandexStorageOptions); var storage = new Mock <YandexStorageService>(options); var reader = new Mock <IPosterReader>(); var dbUpdater = new PosterDbUpdater(Db, dbUpdaterLog.Object); var guidProvider = new Mock <IGuidProvider>(); guidProvider.Setup(mock => mock.NewGuid()).Returns("g-u-i-d"); return(new PosterUpdater(log.Object, storage.Object, reader.Object, dbUpdater, guidProvider.Object)); }
static async Task Main(string[] args) { var bucket = "cpk-bucket-storage"; var accessKey = "JmT-qmYIKGT4KFJXUZtB"; var secretKey = "Y9H16rM5lga4yG8-kqyByQDv2VkPpIH-0w8OE6Tp"; var subPath = "cpk_development"; var yandex = new YandexStorageOptions() { BucketName = bucket, AccessKey = accessKey, SecretKey = secretKey, SubPath = subPath }; var yandexService = yandex.CreateYandexObjectService(); var isSuccess = await yandexService.TryGetAsync(); Console.WriteLine(isSuccess); // for upload var filename = "test_file6.mp4"; var filePath = Path.Combine(@"K:\FTP\Video", filename); // for download var downloadFileName = "download_file.mp4"; var uploadedFileUrl = ""; // UPLOAD STREAMED TEST using (FileStream fs = new FileStream(filePath, FileMode.Open)) { var fileGuid = $"{Guid.NewGuid()}_{filename}"; uploadedFileUrl = await yandexService.PutObjectAsync(fs, fileGuid); Console.WriteLine(uploadedFileUrl); } // UPLOAD BYTES TEST using (FileStream fs = new FileStream(filePath, FileMode.Open)) { var fileGuid = $"{Guid.NewGuid()}_{filename}"; using (MemoryStream ms = new MemoryStream()) { await fs.CopyToAsync(ms); uploadedFileUrl = await yandexService.PutObjectAsync(ms.ToArray(), fileGuid); } Console.WriteLine(uploadedFileUrl); } // DOWNLOAD STREAMED TEST using (FileStream fsDownload = File.Create(downloadFileName)) { var result = await yandexService.GetAsStreamAsync(uploadedFileUrl.ToString()); await result.CopyToAsync(fsDownload); } // DOWNLOAD BYTES TEST using (FileStream fsDownload = File.Create(downloadFileName)) { var result = await yandexService.GetAsByteArrayAsync(uploadedFileUrl.ToString()); await fsDownload.WriteAsync(result); } // PRESIGNED URL TEST var presignedUrl = yandexService.GetPresignedUrl(uploadedFileUrl.ToString(), TimeSpan.FromHours(3)); Console.WriteLine(presignedUrl); // DELETE TEST var deleteResult = await yandexService.DeleteObjectAsync(uploadedFileUrl); Console.WriteLine(deleteResult); Console.ReadKey(); }