Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.0.2

tus_client

Um cliente tus para o Dart que permite upload resumível usando o protocolo tus.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
145
Curtidas
25
Pontos Pub
140

Instalar pacote

flutter pub add tus_client

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

O pacote tus_client é uma implementação em Dart do protocolo tus, permitindo uploads de arquivos recuperáveis em várias plataformas. Permite que os usuários carreguem arquivos grandes de forma confiável, dividindo-os em partes e retomando transferências interrompidas. O cliente suporta todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux. Projetado para robustez e eficiência, lida com interrupções de rede com elegância e garante a integridade dos dados durante os uploads. Ideal para aplicações que exigem capacidades seguras e escaláveis de transferência de arquivos.

Casos de uso

  • Envio de arquivos grandes
  • Transferência de arquivos com foco em offline
  • Integração de armazenamento em nuvem
  • Rastreamento de progresso durante os uploads
  • Retomar uploads interrompidos

Principais recursos

  • Envios recuperáveis
  • Suporte multiplataforma
  • Transferência de arquivo em partes
  • Monitoramento de progresso de upload
  • Repetição automática em caso de falha

Indicado para

  • aplicações intensivas em arquivos
  • Aplicativos móveis e web com necessidade de upload
  • Aplicações que exigem transferência de dados confiável
  • Desenvolvedores usando o protocolo tus
  • Serviços de back-end integrados com clientes tus

Considerações

  • Requer um servidor compatível com tus
  • Limitado a casos de uso de upload de arquivos
  • Pode ser necessário configuração adicional para cabeçalhos personalizados
  • Não adequado para streaming ou dados em tempo real
  • Dependente de conexão estável com a internet para desempenho ideal

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

A tus client

Pub Version Build Status codecov


A tus client in pure dart. Resumable uploads using tus protocol

tus is a protocol based on HTTP for resumable file uploads. Resumable means that an upload can be interrupted at any moment and can be resumed without re-uploading the previous data again. An interruption may happen willingly, if the user wants to pause, or by accident in case of a network issue or server outage.

Usage

import 'package:cross_file/cross_file.dart' show XFile;

// File to be uploaded
final file = XFile("/path/to/my/pic.jpg");

// Create a client
final client = TusClient(
    Uri.parse("https://master.tus.io/files/"),
    file,
    store: TusMemoryStore(),
);

// Starts the upload
await client.upload(
    onComplete: () {
        print("Complete!");

        // Prints the uploaded file URL
        print(client.uploadUrl.toString());
    },
    onProgress: (progress) {
        print("Progress: $progress");
    },
);
Using Persistent URL Store

This is only supported on Flutter Android, iOS, desktop and web. You need to add to your pubspec.yaml:

dependencies:
  tus_client: ^1.0.2
  tus_client_file_store: ^0.0.3
import 'package:path_provider/path_provider.dart';
import 'package:tus_client_file_store/tus_client_file_store.dart' show TusFileStore;
import 'package:path/path.dart' as p;

// Directory the current uploads will be saved in
final tempDir = (await getTemporaryDirectory()).path;
final tempDirectory = Directory(p.join(tempDir, "tus-uploads"));

// Create a client
final client = TusClient(
    Uri.parse("https://example.com/tus"),
    file,
    store: TusFileStore(tempDirectory),
);

// Start upload
await client.upload();
Adding Extra Headers
final client = TusClient(
    Uri.parse("https://master.tus.io/files/"),
    file,
    headers: {"Authorization": "..."},
);
Adding extra data
final client = TusClient(
    Uri.parse("https://master.tus.io/files/"),
    file,
    metadata: {"for-gallery": "..."},
);
Changing chunk size

The file is uploaded in chunks. Default size is 512KB. This should be set considering speed of upload vs device memory constraints

final client = TusClient(
    Uri.parse("https://master.tus.io/files/"),
    file,
    maxChunkSize: 10 * 1024 * 1024,  // chunk is 10MB
);
Pausing upload

Pausing upload can be done after current uploading in chunk is completed.

final client = TusClient(
    Uri.parse("https://master.tus.io/files/"),
    file
);

// Pause after 5 seconds
Future.delayed(Duration(seconds: 5)).then((_) =>client.pause());

// Starts the upload
await client.upload(
    onComplete: () {
        print("Complete!");
    },
    onProgress: (progress) {
        print("Progress: $progress");
    },
);

Example

For an example of usage in a Flutter app (using file picker) see: /example

Maintainers

Categorias

Dependências

Lista de dependências 3 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.