Speicherkonfigurationen

Aktualisierte
Cover image for: Speicherkonfigurationen

Die Speicherkonfigurationsressource beschreibt, wo die API die Daten speichern kann, die zu den Ergebnissen von Abstimmungen gehören. Alle in Speicherkonfigurationen angegebenen Speicherorte müssen ein Cloud-Speicher-Bucket in Google Cloud Storage oder Amazon S3 (AWS) sein .

Attribute

Name Art Beschreibung
id Speicherkonfigurations-ID Ressourcenkennung.
resource Zeichenfolge, immer storage_config Ressourcentypbezeichner.
organisation Organisations-ID Die Organisation, zu der die Ressource gehört.
type Zeichenfolge Einer von: gs , s3 . Dies ist ein schreibgeschütztes Attribut, das aus der url generiert wird.
url Zeichenfolge Eine URL, die das Ziel darstellt, auf dem die Ergebnisse veröffentlicht werden.
credentials Wörterbuch Ein Wörterbuch mit den Anmeldeinformationen, die von der API zur Authentifizierung beim Speicherdienst verwendet werden.
signed_urls_enabled optionales Bool, Standardwert false Gibt an, ob signierte URLs für Ergebnisse generiert werden sollen, die mit der Speicherkonfiguration veröffentlicht wurden.
signed_urls_expiry optionales Timedelta Wenn signierte URLs aktiviert sind, bleibt die Zeit in Sekunden gültig.
state Zeichenfolge Eines von: 'new' , 'valid' , 'invalid' , 'deactivated' .
date_created Terminzeit Wann wurde die Ressource erstellt.

Typen

gs
der Google Cloud Storage- Speicherkonfigurationstyp. Erfordert Anmeldeinformationen für das Dienstkonto.
s3
den Speicherkonfigurationstyp Amazon S3 (AWS) . Erfordert AWS-Benutzeranmeldeinformationen.

URLs

Das url Attribut folgt dem Format:

<type>://<bucket name>/<path within bucket>

Angenommen, wir haben einen Bucket in Google Cloud Storage mit dem Namen "my-bucket" und möchten, dass die API in einem Ordner mit dem Namen "results" veröffentlicht wird. Die url sieht folgendermaßen aus:

gs://my-bucket/results

Referenzen

Anmeldeinformationen für Google Cloud Storage

Die API erwartet, dass das Attribut credentials ein Wörterbuch mit folgendem Format ist:

{
    "type": "service_account",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "client_id": "<Google Cloud Platform client ID>",
    "token_uri": "https://oauth2.googleapis.com/token",
    "project_id": "<Google Cloud Platform project ID>",
    "private_key": "<Service Account private key>",
    "client_email": "<Service Account ID>.iam.gserviceaccount.com",
    "private_key_id": "<Service Account private key ID>",
    "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/<Service Account ID>.iam.gserviceaccount.com",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs"
}

Dies entspricht genau der Ausgabe-JSON-Datei, wenn ein Dienstkontoschlüssel über die Google Cloud Platform-Konsole erstellt wird.

Um das Einrichten einer Speicherkonfiguration mit den exportierten JSON-Anmeldeinformationen zu vereinfachen, enthält ricloud-py einen einfachen cli-Befehl:

ricloud storage-config create --url "gs://<bucket name>" --credentials <path to JSON file>

Amazon S3-Anmeldeinformationen

Die API hat erwartet, dass das Attribut credentials ein Wörterbuch mit folgendem Format ist:

{
    "user_name": "<aws user name>",
    "access_key_id": "<aws user access key ID>",
    "secret_access_key": "<aws user secret access key>",
}

In den obigen Nutzdaten für Anmeldeinformationen entspricht der Parameter user_name dem Benutzernamen des AWS IAM-Benutzers, zu dem der Zugriffsschlüssel gehört. Dies kann für Verwaltungs- und Prüfungszwecke hilfreich sein.

Dies kann entweder manuell aus den in der AWS-Konsole angezeigten Details oder aus der exportierbaren CSV-Datei mit dem Befehl cli von ricloud-py erstellt werden :

ricloud storage-config create --url "s3://<bucket name>" --credentials <path to CSV file>

Signierte URLs

Signierte URLs sind zeitlich begrenzte, vorautorisierte Links für den Zugriff auf ein Element in einem Cloud-Speicherbereich. Sie ermöglichen Implementierungen den sicheren Zugriff auf ein bestimmtes Element, auf das der Client sonst nicht oder überhaupt nicht zugreifen könnte.

Wenn signierte URLs in einer Speicherkonfiguration aktiviert sind, wird für jedes Ergebnis, das mit dieser Konfiguration veröffentlicht wird, das Attribut " signed_url . Weitere Informationen finden Sie unter Ergebnisattribute .

Signierte URLs werden sowohl von Google Cloud Storage ( Link zu GCS-signierten URL-Dokumenten ) als auch von AWS S3 ( Link zu S3-Dokumenten ) unterstützt.

Eine zusätzliche Anforderung für signierte URLs besteht darin, dass der Benutzer, der den Anmeldeinformationen für die Speicherkonfiguration zugeordnet ist, über Leseberechtigungen für Objekte im Bucket verfügen muss. In GCS ist dies die Rolle "Storage Object Viewer". In S3 befindet sich die Richtlinienaktion "s3: GetObject".

Zustände

new
wurde gerade erstellt oder kürzlich aktualisiert, aber noch nicht getestet.
valid
hat die Validierung bestanden und ist einsatzbereit. Eine Organisation muss mindestens eine Speicherkonfiguration in diesem Status haben, um verwendet werden zu können.
invalid
hat den Validierungstest nicht bestanden. Muss aktualisiert oder erneut getestet werden.
deactivated
wurde von der Eigentümerorganisation deaktiviert.

Änderungsprotokoll

2020-02-27

  • Fügt Unterstützung für signierte URLs hinzu. Dadurch werden die signed_urls_enabled und signed_urls_expiry zum Speicherkonfigurationsobjekt signed_urls_expiry um die Generierung signierter URLs für Ergebnisse signed_urls_enabled und um signed_urls_expiry wie lange die signierten URLs aktiv sein sollen.

Erstellen Sie POST /configs/storage

Wenn eine neue Speicherkonfiguration erstellt wird, versucht die API, diese durch Erstellen einer storage_config.test Task zu testen. Diese Aufgabe veröffentlicht einfach eine kleine Testnutzlast unter Verwendung der Konfiguration, die anschließend sicher gelöscht werden kann. Wenn der Vorgang erfolgreich ist, wird der Status der Konfiguration auf " valid und kann für Abfragen verwendet werden. Im Falle eines Fehlers wird der Status der Konfiguration auf invalid , dies kann jedoch einfach mit der Testaktion erneut getestet werden.

Die erste gültige Speicherkonfiguration in einer Organisation wird automatisch als Standard der Organisation festgelegt.

Beachten Sie, dass die Erstellung von Speicherkonfigurationen für das url Attribut dedupliziert wird. Daher ist es nicht möglich, zwei Speicherkonfigurationen mit derselben url aber unterschiedlichen credentials zu erstellen.

Parameter

Name Art Beschreibung
url erforderlich Die Speicherkonfigurations-URL für Ihren Bucket.
credentials erforderlich Die Anmeldeinformationen für die Speicherkonfiguration für Ihren Bucket.

CURL verwenden

In diesem Fall stammt der Inhalt des Wörterbuchs für Anmeldeinformationen aus dem Kopieren des Inhalts der JSON-Anmeldeinformationsdatei, die während der Einrichtung des Google Cloud-Dienstkontos generiert wurde.

curl https://ricloud-api.reincubate.com/configs/storage \
  -X POST \
  -H 'Authorization: Token <your key_token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "url": "gs://my-storage-bucket",
  "credentials": {
      "type": "service_account",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "client_id": "<Google Cloud Platform client ID>",
      "token_uri": "https://oauth2.googleapis.com/token",
      "project_id": "<Google Cloud Platform project ID>",
      "private_key": "<Service Account private key>",
      "client_email": "<Service Account ID>.iam.gserviceaccount.com",
      "private_key_id": "<Service Account private key ID>",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/<Service Account ID>.iam.gserviceaccount.com",
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs"
  }
}'

Mit Ricloud-Py

import json
import ricloud

with open("<path to JSON file>", 'r') as credentials_file:
    credentials = json.load(credentials_file)

storage_config = ricloud.StorageConfig.create(
    url='gs://my-storage-bucket',
    credentials=credentials
)

GET /configs/storage/{storage_config ID}

CURL verwenden

curl https://ricloud-api.reincubate.com/configs/storage/<storage_config ID> \
  -H 'Authorization: Token <your key_token>'

Mit Ricloud-Py

import ricloud

storage_config = ricloud.StorageConfig.retrieve(<storage_config ID>)

Liste GET /configs/storage

Speicherkonfigurationen im deactivated Zustand sind standardmäßig ausgeblendet und können nur durch explizite Filterung aufgelistet werden.

Parameter

Name Art Beschreibung
type Zeichenfolge Filtern Sie nach dem Typ des Backing Bucket.
state Zeichenfolge Filtern Sie nach dem Status der Konfiguration.
date_created Datum / Uhrzeit-Filter Filtern nach Erstellungsdatum der Ressource.

CURL verwenden

curl https://ricloud-api.reincubate.com/configs/storage \
  -H 'Authorization: Token <your key_token>'

Mit Ricloud-Py

import ricloud

storage_configs = ricloud.StorageConfig.list()

Aktualisieren Sie POST /configs/storage/{storage_config ID}

Diese Aktion erstellt eine storage_config.test Task, um die Gültigkeit von Änderungen an der Konfiguration zu überprüfen.

Parameter

Name Art Beschreibung
url Zeichenfolge Aktualisieren Sie die URL, um auf einen anderen Bucket oder eine andere Position im Bucket zu verweisen. Beachten Sie, dass der Typ eines Buckets durch diesen Vorgang nicht geändert werden kann.
credentials Wörterbuch Aktualisieren Sie die Anmeldeinformationen.
state Zeichenfolge Nur zu new oder deactivated .

CURL verwenden

curl https://ricloud-api.reincubate.com/configs/storage/<storage_config ID> \
  -X POST \
  -H 'Authorization: Token <your key_token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "url": "gs://my-storage-bucket/subfolder"
}'

Mit Ricloud-Py

import ricloud

storage_config = ricloud.StorageConfig.update_with_id(
  <storage_config ID>, url="gs://my-storage-bucket/subfolder"
)

# OR

storage_config = ricloud.StorageConfig.retrieve(<storage_config ID>)

storage_config.update(url='gs://my-storage-bucket/subfolder')

DELETE /configs/storage/{storage_config ID}

Löscht die Speicherkonfiguration vollständig aus der API. Dadurch werden alle zugehörigen Anmeldeinformationen entfernt, die in der API gespeichert sind.

CURL verwenden

curl https://ricloud-api.reincubate.com/configs/storage/<storage_config ID> \
  -X DELETE \
  -H 'Authorization: Token <your key_token>'

Mit Ricloud-Py

Seit ricloud-py v3.0.0 .

import ricloud

ricloud.StorageConfig.delete_with_id(<storage_config ID>)

# OR

storage_config = ricloud.StorageConfig.retrieve(<storage_config ID>)

storage_config.delete()

Testen Sie POST /configs/storage/{storage_config ID}/test

Mit dieser Aktion können Sie die Gültigkeit einer Speicherkonfiguration erneut testen. Der Status der Konfiguration wird abhängig vom Ergebnis des Tests auf valid oder invalid .

Beachten Sie, dass diese Aktion eine Aufgabenressource zurückgibt.

CURL verwenden

curl https://ricloud-api.reincubate.com/configs/storage/<storage_config ID>/test \
  -H 'Authorization: Token <your key_token>'

Mit Ricloud-Py

import ricloud

test_task = ricloud.StorageConfig.test_with_id(<storage_config ID>)

# OR

storage_config = ricloud.StorageConfig.retrieve(<storage_config ID>)

test_task = storage_config.test()

Wie können wir helfen?

Unser Support-Team hilft Ihnen gerne weiter!

Unsere Bürozeiten sind Montag bis Freitag von 9 bis 17 Uhr GMT. Die Zeit ist aktuell 12:23 nachm. GMT.

Wir bemühen uns, auf alle Mitteilungen innerhalb eines Arbeitstages zu antworten.

Zum Support-Bereich gehen › Wenden Sie sich an das Unternehmensteam ›
Unser großartiges Supportteam

Können wir diesen Artikel verbessern?

Wir hören gerne von Nutzern: Warum schicken Sie uns nicht eine E-Mail, schreiben Sie einen Kommentar oder tweeten Sie @reincubate?

© 2008 - 2020 Reincubate Ltd. Alle Rechte vorbehalten. Registriert in England und Wales #5189175, VAT GB151788978. Reincubate® und Camo® sind eingetragene Marken. Datenschutz-Bestimmungen & Begriffe. Wir empfehlen die Multi-Faktor-Authentifizierung. Mit Liebe in London gebaut.