getFile method

Lädt eine Datei anhand ihrer Objekt-ID herunter

Ruft den Dateiinhalt und die Metadaten einer gespeicherten Datei ab. Die Methode prüft automatisch die Session und lädt dann die vollständige Datei.

oid - Die eindeutige Objekt-ID der Datei

Returns: RestApiFileResponse mit Dateiinhalt, MIME-Type und Metadaten

Throws: Exception bei Netzwerkfehlern oder ungültiger OID

Beispiel:

try {
  RestApiFileResponse response = await manager.getFile("file-oid-12345");
  if (response.isOk) {
    Uint8List fileData = response.data;
    String fileName = response.fileName;
    String mimeType = response.mimeType;
    // Datei speichern oder verarbeiten
  }
} catch (e) {
  print("Datei-Download fehlgeschlagen: $e");
}

Implementation

Future<RestApiFileResponse> getFile(String oid) async {
  String function = "v1/file";
  String uriPath =
      "${_config.alias.isEmpty ? "" : "/${_config.alias}"}/$function/$oid";

  RestApiHttpMetric metric = RestApiHttpMetric(function, HttpMethod.get);

  try {
    Uri requestUri = _getUri(uriPath);

    metric.start();

    http.Response httpResponse = await http
        .get(requestUri, headers: _getHeader())
        .timeout(const Duration(seconds: 60));
    final response = RestApiFileResponse(httpResponse);

    metric.responseCode = httpResponse.statusCode;
    metric.responsePayloadSize = httpResponse.contentLength;
    metric.responseContentType = httpResponse.headers['content-type'];
    metric.stop();

    return (response);
  } catch (_) {
    rethrow;
  } finally {
    callbacks.triggerHttpMetricRecordedEvent(metric);
  }
}