Configuration de stockage

Mis à jour

La ressource de configuration de stockage décrit où l'API peut stocker les données appartenant aux résultats des interrogations. Tous les emplacements spécifiés dans les configurations de stockage doivent être un compartiment de stockage en nuage dans Google Cloud Storage ou Amazon S3 (AWS) .

Les attributs

prénom type la description
id ID de configuration de stockage Identifiant de ressource.
resource chaîne, toujours storage_config Spécificateur de type de ressource.
organisation ID d'organisation L'organisation à laquelle la ressource appartient.
type chaîne Un des: gs , s3 . Ceci est un attribut en lecture seule généré à partir de l' url .
url chaîne Une URL représentant la cible sur laquelle les résultats seront publiés.
credentials dictionnaire Dictionnaire contenant les informations d'identification utilisées par l'API pour s'authentifier auprès du service de stockage.
state chaîne L'un des suivants: 'new' , 'valid' , 'invalid' , 'deactivated' .
date_created date / heure Quand la ressource a été créée.

Les types

gs
le type de configuration de stockage de Google Cloud Storage . Requiert les informations d'identification du compte de service.
s3
le type de configuration de stockage Amazon S3 (AWS) . Requiert les informations d'identification de l'utilisateur AWS.

URL

L'attribut url suit le format:

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

Par exemple, dans Google Cloud Storage, nous avons un compartiment avec le nom "my-bucket" et nous souhaitons que l'API publie dans un dossier de ce compartiment appelé "résultats". L' url ressemblerait à ceci:

gs://my-bucket/results

Lettres de créance

Informations d'identification Google Cloud Storage

L'API s'attend à ce que l'attribut credentials soit un dictionnaire au format:

{
    "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"
}

Cela correspond exactement au fichier JSON de sortie lors de la création d'une clé de compte de service via la console Google Cloud Platform.

Pour simplifier la configuration d'une configuration de stockage à l'aide des informations d'identification du fichier JSON exporté, ricloud-py inclut une simple commande cli:

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

Informations d'identification Amazon S3

L'API s'attendait à ce que l'attribut credentials soit un dictionnaire au format:

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

Cela peut être construit manuellement à partir des détails affichés dans la console AWS ou à partir du fichier CSV exportable via la commande cli de ricloud-py :

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

États

new
vient d'être créé ou récemment mis à jour mais pas encore testé.
valid
a réussi la validation et est prêt à être utilisé. Une organisation doit avoir au moins une configuration de stockage dans cet état pour pouvoir être utilisée.
invalid
a échoué au test de validation. Doit être mis à jour ou retesté.
deactivated
a été désactivé par l’organisation propriétaire.

Créer un POST /configs/storage

Lorsqu'une nouvelle configuration de stockage est créée, l'API tente de la tester en créant une tâche storage_config.test . Cette tâche publiera simplement une petite charge de test à l’aide de la configuration, qui peut ensuite être supprimée en toute sécurité. Si l'opération réussit, l'état de la configuration est défini sur valid et il devient utilisable avec les sondages. En cas d'échec, l'état de la configuration sera défini sur invalid , mais cela peut être facilement testé à nouveau à l'aide de l' action de test .

La première configuration de stockage valide au sein d'une organisation sera automatiquement définie comme configuration par défaut de l'organisation.

Notez que la création de configurations de stockage est dédupliquée sur l'attribut url . Par conséquent, il n'est pas possible de créer deux configurations de stockage avec la même url mais des credentials différentes.

Paramètres

prénom type la description
url Champs obligatoires L'URL de configuration de stockage pour votre compartiment.
credentials Champs obligatoires Les informations d'identification de la configuration de stockage pour votre compartiment.

Utiliser cURL

Ici, le contenu du dictionnaire d'informations d'identification provient de la copie du contenu du fichier d'informations d'identification JSON généré lors de la configuration du compte de service Google Cloud.

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"
  }
}'

Utiliser 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
)

Récupérer GET /configs/storage/{storage_config ID}

Utiliser cURL

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

Utiliser ricloud-py

import ricloud

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

Liste GET /configs/storage

Les configurations de stockage à l'état deactivated sont masquées par défaut et ne peuvent être répertoriées que par filtrage explicite.

Paramètres

prénom type la description
type chaîne Filtrer par type de bac de sauvegarde.
state chaîne Filtrer par l'état de la configuration.
date_created filtre datetime Filtrer par date de création de la ressource.

Utiliser cURL

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

Utiliser ricloud-py

import ricloud

storage_configs = ricloud.StorageConfig.list()

Mettre à jour le POST /configs/storage/{storage_config ID}

Cette action crée une tâche storage_config.test afin de vérifier la validité des modifications apportées à la configuration.

Paramètres

prénom type la description
url chaîne Mettez à jour l'URL pour qu'elle pointe vers un autre ou un autre emplacement du même. Notez que le type de compartiment ne peut pas être modifié par cette opération.
credentials dictionnaire Mettez à jour les informations d'identification.
state chaîne Seulement à new ou deactivated .

Utiliser cURL

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"
}'

Utiliser 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')

Supprimer DELETE /configs/storage/{storage_config ID}

Supprime entièrement la configuration de stockage de l'API. Cela supprime toutes les informations d'identification associées stockées dans l'API.

Utiliser cURL

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

Utiliser ricloud-py

Depuis 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()

Test POST /configs/storage/{storage_config ID}/test

Cette action vous permet de tester à nouveau la validité d'une configuration de stockage. L'état de la configuration sera défini sur valid ou invalid fonction du résultat du test.

Notez que cette action renvoie une ressource de tâche.

Utiliser cURL

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

Utiliser 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()

Comment pouvons nous aider?

Notre équipe de support est là pour vous aider!

Nos bureaux sont ouverts du lundi au vendredi, de 9 h à 17 h GMT. L’heure est actuellement 1:20 Matin GMT.

Notre objectif est de répondre à tous les messages en un jour ouvrable.

Aller à la section support › Contacter l'équipe de l'entreprise ›
Notre superbe équipe de support

Pouvons-nous améliorer cet article?

Nous aimons entendre les utilisateurs: pourquoi ne pas nous envoyer un email, laisser un commentaire ou tweet @reincubate?

© 2008 - 2019 Reincubate Ltd. Tous droits réservés. Enregistré en Angleterre et au Pays de Galles #5189175, VAT GB151788978. Reincubate® est une marque déposée. Confidentialité et modalités. Nous recommandons l'authentification multi-facteurs. Construit avec à Londres.