Resuming a large file is refused when its fileInfo carries large_file_sha1

Aberta
#223 0 comentários 0 reações 1 responsável Ver no GitHub

Mantenedores costumam responder em até 3 dias

@ffumero2003 já está trabalhando nisso.

Desde 29/10/2026.

  • #232 de @sophiecarreras — aberto

Avaliação

Esta issue ainda não foi avaliada.

Descrição

bug

Problem

When resuming a large file, B2LargeFileUploader checks that the unfinished file's fileInfo matches the request. It removes the SDK-added whole-file SHA-1 before comparing:

// core/src/main/java/com/backblaze/b2/client/B2LargeFileUploader.java:141
infos.remove(B2Headers.LARGE_FILE_SHA1);

B2Headers.LARGE_FILE_SHA1 is the header name X-Bz-Info-large_file_sha1 (B2Headers.java:50), but the map is keyed by the file-info name large_file_sha1 (B2Headers.LARGE_FILE_SHA1_INFO_NAME, :49). The remove never matches, so the comparison at :142 fails and a resume is refused whenever the original upload carried a SHA-1, even when the request is identical to the one that started the file.

Expected vs. actual

  • Expected: resuming with the same request that started the large file continues the upload.
  • Actual: throwIfMismatch("fileInfo", ...) rejects it when a SHA-1 is known. Resume without a SHA-1 works.

Acceptance criteria

  • Remove B2Headers.LARGE_FILE_SHA1_INFO_NAME instead of B2Headers.LARGE_FILE_SHA1.
  • A unit test that resumes an unfinished file whose fileInfo contains large_file_sha1 with the same request, and asserts no mismatch is thrown; and that a different non-SHA-1 file-info value is still rejected.
Linguagem predominante
Java
Estrelas
103
Forks
23
Merge médio
5d 8h
PRs com merge (30d)
3

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de Backblaze/b2-sdk-java

Todas as issues de Backblaze/b2-sdk-java

Issues semelhantes

Mais issues de Java

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.