checkBlob method
Future<String>
checkBlob({
- required String sha256,
- required List<
String> serverUrls, - Nip01Event? authorization,
override
Checks if the blob exists on the server
If authorization
is null, the server must be public
returns one server that has the blob
Implementation
@override
Future<String> checkBlob({
required String sha256,
required List<String> serverUrls,
Nip01Event? authorization,
}) async {
Exception? lastError;
final headers = <String, String>{};
if (authorization != null) {
headers['Authorization'] = "Nostr ${authorization.toBase64()}";
}
for (final url in serverUrls) {
try {
final response = await client.head(
url: Uri.parse('$url/$sha256'),
);
if (response.statusCode == 200) {
return '$url/$sha256';
}
lastError = Exception('HTTP ${response.statusCode}');
} catch (e) {
lastError = e is Exception ? e : Exception(e.toString());
}
}
throw Exception(
'Failed to check blob from any of the servers. Last error: $lastError');
}