Speicherkonfigurationen

Aktualisierte

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.
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>",
}

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>

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.

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 nach dem Typ des Backing-Buckets.
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 9:57 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 - 2019 Reincubate Ltd. Alle Rechte vorbehalten. Registriert in England und Wales #5189175, VAT GB151788978. Reincubate® ist eine eingetragene Marke. Datenschutz. Wir empfehlen die Multi-Faktor-Authentifizierung. Mit Liebe in London gebaut.