Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.0.2

tus_client

Ein tus-Client für Dart, der fortsetzbare Uploads mithilfe des tus-Protokolls ermöglicht.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
145
Likes
25
Pub-Punkte
140

Paket installieren

flutter pub add tus_client

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Das tus_client-Paket ist eine Dart-Implementierung des tus-Protokolls, die resumierbare Dateiuploads auf verschiedenen Plattformen ermöglicht. Es ermöglicht Benutzern, große Dateien zuverlässig hochzuladen, indem sie in Teile zerlegt und unterbrochene Übertragungen fortgesetzt werden können. Der Client unterstützt alle wichtigen Plattformen wie Android, iOS, Web, macOS, Windows und Linux. Für Robustheit und Effizienz entwickelt, handhabt er Netzwerkunterbrechungen reibungslos und gewährleistet die Datenintegrität während des Hochladens. Ideal für Anwendungen, die sichere, skalierbare Dateiübertragungsfunktionen erfordern.

Anwendungsfälle

  • Große Dateiuploads
  • Dateiübertragung mit Fokus auf Offline
  • Cloud-Speicher-Integration
  • Fortschrittsverfolgung während des Hochladens
  • Unterbrochene Uploads fortsetzen

Hauptmerkmale

  • Fortsetzbare Uploads
  • Plattformübergreifende Unterstützung
  • Gepackte Dateiübertragung
  • Überwachung des Upload-Fortschritts
  • Automatische Wiederholung bei Fehler

Geeignet für

  • dateiintensive Anwendungen
  • Mobile- und Web-Apps mit Upload-Anforderungen
  • Anwendungen, die zuverlässige Datenübertragung erfordern
  • Entwickler, die das tus-Protokoll verwenden
  • Backend-Dienste, die mit tus-Clients integriert sind

Hinweise

  • Erfordert einen tus-kompatiblen Server
  • Beschränkt auf Datei-Upload-Anwendungsfälle
  • Möglicherweise sind zusätzliche Konfigurationen für benutzerdefinierte Header erforderlich
  • Nicht geeignet für Streaming oder Echtzeitdaten
  • Abhängig von einer stabilen Internetverbindung für optimale Leistung

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

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

Kategorien

Abhängigkeiten

Abhängigkeiten 3 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.