Skip to content

#9 Endpoint as URL in settings - #10

Open
dundich wants to merge 2 commits into
teoadal:masterfrom
dundich:master
Open

#9 Endpoint as URL in settings#10
dundich wants to merge 2 commits into
teoadal:masterfrom
dundich:master

Conversation

@dundich

Copy link
Copy Markdown
Contributor

No description provided.

@dundich

Copy link
Copy Markdown
ContributorAuthor

#9 для тикета переименовал клиента в S3BucketClient

  1. Завел интерфейсы
publicinterfaceIS3BucketClient:IBucketOperations,IFileOperations{stringBucket{get;}UriEndpoint{get;}}publicinterfaceIBucketOperations{Task<bool>CreateBucket(CancellationTokenct);Task<bool>DeleteBucket(CancellationTokenct);Task<bool>IsBucketExists(CancellationTokenct);}publicinterfaceIFileOperations{stringBuildFileUrl(stringfileName,TimeSpanexpiration);TaskDeleteFile(stringfileName,CancellationTokenct);Task<S3File>GetFile(stringfileName,CancellationTokenct);Task<Stream>GetFileStream(stringfileName,CancellationTokenct);Task<string?>GetFileUrl(stringfileName,TimeSpanexpiration,CancellationTokenct);Task<bool>IsFileExists(stringfileName,CancellationTokenct);IAsyncEnumerable<string>List(string?prefix,CancellationTokenct);Task<bool>UploadFile(stringfileName,stringcontentType,byte[]data,CancellationTokenct);Task<S3Upload>UploadFile(stringfileName,stringcontentType,CancellationTokenct);Task<bool>UploadFile(stringfileName,stringcontentType,Streamdata,CancellationTokenct);}
  1. Тесты - ok

  2. Старого заопсалетил (оставил для перехода)

[Obsolete("Use S3BucketClient instead.")]publicsealedclassS3Client(S3Settingssettings,HttpClient?client=null,IArrayPool?arrayProvider=null):S3BucketClient(client??newHttpClient(),settings.MapToBucketSettings(),arrayProvider){}

@dundich

dundich commented May 5, 2025

Copy link
Copy Markdown
ContributorAuthor
  1. Перенес в UrlUtils методы для работы с uri (тестебилити апнул)
  2. Добавил тест и оптимизировал UrlUtils.AppendCanonicalQueryParameters(ref builder, "?key=value");
  3. Запрятал взад IArrayPool - показалось много инвазий, но оставил дешевый компромисс задать стратегию на старте (пока показалось рано его еще выносить в зависимости - сыроват и не везде был пропихан)
  4. Добавил TimeProvider

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@dundich