tus_client
डार्ट के लिए एक tus क्लाइंट, जो tus प्रोटोकॉल का उपयोग करके निरंतर अपलोड की अनुमति देता है।
डार्ट के लिए एक tus क्लाइंट
यह अंग्रेज़ी मूल स्नैपशॉट है। नवीनतम सामग्री GitHub पर देखें।
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.
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");
},
);
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();
final client = TusClient(
Uri.parse("https://master.tus.io/files/"),
file,
headers: {"Authorization": "..."},
);
final client = TusClient(
Uri.parse("https://master.tus.io/files/"),
file,
metadata: {"for-gallery": "..."},
);
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 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");
},
);
For an example of usage in a Flutter app (using file picker) see: /example
निर्भरता सूची 7 आइटम
{"sdk":"flutter"}^0.3.1+4^0.13.0^1.7.0{"sdk":"flutter"}^5.0.3^1.11.0उपयोग के अनुसार छाँटें, गतिविधि की तुलना करें और अपनाने से पहले मूल प्रोजेक्ट की आवश्यकताएँ जाँचें।
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗