.NET Core용 Backblaze 에이전트(클라이언트)는 Backblaze B2 Cloud Storage API를 구현한 것입니다. Backblaze B2 Cloud Storage는 인터넷에서 가장 저렴한 클라우드 스토리지를 제공합니다. Backblaze B2 Cloud Storage는 다른 스토리지 제공업체 가격의 ¼ 수준입니다. 처음 10GB의 저장 공간은 무료이므로 한번 사용해 보세요.
파일, 계정, 키 및 버킷을 포함하여 Backblaze B2 Cloud Storage API v2를 완벽하게 지원합니다.
Backblaze Agent가 Windows, Mac 및 Linux 시스템에서 작동함을 의미하는 .NET Standard 2.0을 대상으로 구축되었습니다.
.NET Core 종속성 주입 및 HttpClientFactory와 원활하게 통합되어 탄력적인 요청을 구현합니다.
MemoryCache를 사용하는 간단한 메모리 내 응답 캐시입니다.
낮은 메모리 할당 및 IProgress 상태로 대용량 파일을 지원합니다.
작업 기반 프로그래밍 모델(async/await)의 기본 지원.
기능 요청 및 버그 보고서를 보려면 GitHub에서 문제를 열어주세요.
Backblaze.Agent를 설치하려면 다음 명령을 실행하십시오.
> dotnet 패키지 Backblaze.Agent 추가
작업 진행 중! 우리는 사용자들이 샘플과 테스트 프로그램을 사용해 볼 것을 권장하지만, 이 프로젝트는 아직 안정적인 상태에 도달하지 못했습니다.
Backblaze Agent를 구성하려면 key_id 와 application_key가 필요합니다. Backblaze B2 Cloud Storage 포털에서 이를 얻을 수 있습니다. 이 패키지를 사용하는 방법에 대한 예는 샘플 프로젝트를 참조하세요.
공개 무효 ConfigureServices(IServiceCollection 서비스){services.AddBackblazeAgent(옵션 =>{options.KeyId = "[key_id]";options.ApplicationKey = "[application_key]";});}
backblaze 버킷 목록을 얻으려면 IStorageClient
클래스에 삽입하고 비동기 클라이언트를 호출하기만 하면 됩니다.
공개 클래스 IndexModel : PageModel{ 개인 읽기 전용 IStorageClient _storage; 공개 IndexModel(IStorageClient 저장소) { _저장 = 저장; } [바인드속성] 공개 IEnumerable<BucketItem> 버킷 { 가져오기; 개인 세트; } 공용 비동기 작업<IActionResult> OnGetAsync() {Buckets = wait _storage.Buckets.GetAsync();if (Buckets == null){ return NotFound();}return Page(); }}
다음 패키지를 설치하십시오.
> dotnet 패키지 Backblaze.Client 추가> dotnet 패키지 Microsoft.Extensions.Caching.Memory 추가> dotnet 패키지 Microsoft.Extensions.Logging.Debug 추가
샘플 코드:
수업 프로그램{ 개인 정적 IStorageClient 클라이언트; 정적 비동기 작업 Main(string[] args) {try{ var options = new ClientOptions(); var loggerFactory = LoggerFactory.Create(builder => {builder .AddFilter("Bytewizer.Backblaze", LogLevel.Trace) .AddDebug(); }); var 캐시 = new MemoryCache(new MemoryCacheOptions()); 클라이언트 = 새로운 BackblazeClient(옵션, loggerFactory, 캐시); wait Client.ConnectAsync("[key_id]", "[application_key]"); var buckets = Client.Buckets.GetAsync()를 기다립니다. foreach (버킷의 var 버킷)Console.WriteLine($"버킷 이름: {bucket.BucketName} - 유형: {bucket.BucketType}"); }catch(예외 ex){ Console.Error.WriteLine(ex.Message);} }}
다음 패키지를 설치합니다:
> dotnet 패키지 Backblaze.Client 추가
샘플 코드:
수업 프로그램{ 개인 정적 IStorageClient 클라이언트; 정적 무효 Main(string[] args) {try{ 클라이언트 = 새로운 BackblazeClient(); Client.Connect("[key_id]", "[application_key]"); var buckets = Client.Buckets.GetAsync().GetAwaiter().GetResult(); foreach(버킷의 var 버킷)Console.WriteLine($"버킷 이름: {bucket.BucketName} - 유형: {bucket.BucketType}");}catch(예외 ex){ Console.Error.WriteLine(ex.Message); } }}
파일 스트림 업로드
foreach(Directory.GetFiles(@"c:mydirectory")의 var filePath){ (var 스트림 = File.OpenRead(filePath)) 사용 {var results = wait Client.UploadAsync("[BucketId]", new FileInfo(filePath).Name, stream); }}
파일 스트림 다운로드
var files = new string[] { @"c:mydirectoryfile1.txt", "file2.bat" };foreach(파일의 var fileName){ (var 스트림 = File.Create(fileName)) 사용 { var results = wait Client.DownloadAsync("[BucketName]", fileName, stream); }}
Microsoft.Extensions.Logging 패키지를 설치합니다.
> dotnet 추가 패키지 Microsoft.Extensions.Logging.Debug
디버그 창 추적은 다음 코드를 사용하여 활성화할 수 있습니다.
services.AddLogging(builder =>{builder.AddDebug();builder.AddFilter("Bytewizer.Backblaze", LogLevel.Trace);});
services.AddBackblazeAgent(옵션 =>{ options.KeyId = "[key_id]"; options.ApplicationKey = "[application_key]";});
다음 표에서는 사용 가능한 에이전트 옵션을 설명합니다.
옵션 이름 | 기본 | 설명 |
---|---|---|
키 ID | --- | 필수 - 인증에 사용되는 키 식별자입니다. |
응용 프로그램 키 | --- | 필수 - 인증에 사용되는 키의 비밀 부분입니다. |
핸들러수명 | 600 | 메시지 처리기 인스턴스를 재사용할 수 있는 시간(초)입니다. |
시간 초과 | 600 | 클라이언트 요청 시간이 초과될 때까지 기다리는 시간(초)입니다. |
재시도횟수 | 5 | 클라이언트가 시간 초과되기 전에 실패한 요청을 재시도하는 횟수입니다. |
RequestMaxParallel | 10 | 설정된 병렬 요청 연결의 최대 수입니다. |
다운로드MaxParallel | 5 | 설정된 최대 병렬 다운로드 연결 수입니다. |
다운로드컷오프크기 | 100MB | 청크 부분으로 전환하기 위한 컷오프 크기를 바이트 단위로 다운로드합니다. |
다운로드부품크기 | 100MB | 청크 부분의 부분 크기를 바이트 단위로 다운로드합니다. |
UploadMaxParallel | 3 | 설정된 최대 병렬 업로드 연결 수입니다. |
업로드컷오프크기 | 100MB | 청크 부분으로 전환하기 위한 컷오프 크기를 바이트 단위로 업로드합니다. |
UploadPartSize | 100MB | 청크 부분의 부분 크기를 바이트 단위로 업로드합니다. |
자동 설정부품 크기 | 거짓 | Backblaze 서비스에서 반환한 권장 부품 크기를 사용하세요. |
체크섬 비활성화됨 | 거짓 | 이는 테스트용으로만 사용되며 프로덕션 환경에는 권장되지 않습니다. |
테스트 모드 | --- | 이는 테스트용으로만 사용되며 프로덕션 환경에는 권장되지 않습니다. |
services.AddBackblazeAgent(옵션 =>{ // 이는 테스트용으로만 사용되며 프로덕션 환경에는 권장되지 않습니다. options.TestMode = "fail_some_uploads"; });
다음 테스트 모드 옵션을 사용하여 코드가 오류 조건을 올바르게 처리하는지 확인할 수 있습니다.
옵션 문자열 | 설명 |
---|---|
실패_일부_업로드 | 무작위 업로드가 실패하거나 서비스에서 거부됩니다. |
만료_some_account_authorization_tokens | 무작위 계정 인증 토큰이 만료됩니다. |
force_cap_exceeded | 한도 초과 조건이 강제 적용됩니다. |
Backblaze 테스트 에이전트 settings.json 파일을 구성하려면 key_id 및 application_key가 필요합니다.
이 프로젝트의 모든 소스, 문서, 지침 및 제품은 보증 없이 있는 그대로 제공됩니다. 사용으로 인해 발생하는 손해, 데이터 손실 또는 비용에 대해 어떠한 책임도 지지 않습니다.
master - 최신 릴리스가 포함된 분기입니다. 이 분기에 직접 기여하면 안 됩니다.
개발 - 기여자가 끌어오기 요청으로 기여를 제안해야 하는 개발 분기입니다. 이 개발 분기는 주기적으로 마스터 분기에 병합되고 NuGet 갤러리에 릴리스됩니다.
이 프로젝트에 대한 기여는 언제나 환영합니다. 원본 프로젝트에 개선 사항을 추가하려면 GitHub에서 이 프로젝트를 포크하고 끌어오기 요청을 보내는 것을 고려해 보세요.