Opslagconfigs

bijgewerkt

De opslagconfiguratiebron beschrijft waar de API de gegevens behorend bij de resultaten van peilingen kan opslaan. Alle locaties die zijn opgegeven in opslagconfigs, moeten een cloudopslagruimte zijn in Google Cloud Storage of Amazon S3 (AWS) .

attributen

naam type Omschrijving
id opslagconfiguratie ID Bron-ID.
resource string, altijd storage_config Specificatie middelenbron.
organisation organisatie ID De organisatie waartoe de resource behoort.
type draad Een van: gs , s3 . Dit is een alleen-lezen kenmerk dat is gegenereerd op basis van de url .
url draad Een URL die het doel vertegenwoordigt waarnaar resultaten worden gepubliceerd.
credentials woordenboek Een woordenboek met de legitimatiegegevens die door de API worden gebruikt voor verificatie tegen de opslagdienst.
signed_urls_enabled optioneel bool, standaard false Of ondertekende URL's moeten worden gegenereerd voor resultaten die zijn gepubliceerd met de opslagconfiguratie.
signed_urls_expiry optionele timedelta Als ondertekende URL's zijn ingeschakeld, blijft de tijd, in seconden, geldig.
state draad Een van de: 'new' , 'valid' , 'invalid' , 'deactivated' .
date_created datum Tijd Wanneer de resource is gemaakt.

Types

gs
het configuratietype Google Cloud Storage . Vereist serviceaccountgegevens.
s3
het opslagconfiguratietype Amazon S3 (AWS) . Vereist AWS-gebruikersreferenties.

URL's

Het kenmerk url volgt het formaat:

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

Als we bijvoorbeeld een bucket in Google Cloud Storage hebben met de naam 'my-bucket' en we willen dat de API naar een map in deze bucket publiceert met de naam 'resultaten', ziet de url er als volgt uit:

gs://my-bucket/results

Geloofsbrieven

Inloggegevens voor Google Cloud Storage

De API verwacht dat het kenmerk credentials een woordenboek is met de indeling:

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

Dit komt exact overeen met het JSON-uitvoerbestand bij het maken van een serviceaccountsleutel via de Google Cloud Platform-console.

Om het instellen van een opslagconfiguratie met behulp van de geëxporteerde JSON-bestandsreferenties te vereenvoudigen, bevat ricloud-py een eenvoudige cli-opdracht:

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

Amazon S3-inloggegevens

De API verwachtte dat het kenmerk credentials een woordenboek is met de indeling:

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

In de credentials payload hierboven komt de parameter user_name overeen met de gebruikersnaam van de AWS IAM-gebruiker waartoe de toegangssleutel behoort. Dit kan handig zijn om op te nemen voor administratieve en auditdoeleinden.

Dit kan handmatig worden geconstrueerd uit de details die in de AWS-console worden getoond, of uit het exporteerbare CSV-bestand via de cli-opdracht van ricloud-py :

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

Ondertekende URL's

Ondertekende URL's zijn tijdelijke, vooraf geautoriseerde links voor toegang tot een item in een cloudopslagbucket. Ze laten implementaties veilige toegang geven tot een specifiek item waar de klant anders geen toegangsrechten voor zou hebben, of helemaal geen referenties.

Wanneer ondertekende URL's zijn ingeschakeld in een opslagconfiguratie, wordt voor elk resultaat dat met die configuratie is signed_url kenmerk signed_url ingevuld. Zie resultaatkenmerken voor meer details.

Ondertekende URL's worden ondersteund door zowel Google Cloud Storage ( link naar documenten met GCS-ondertekende URL's ) als AWS S3 ( link naar S3-documenten ).

Een extra vereiste voor ondertekende URL's is dat de gebruiker die is gekoppeld aan de referenties van de opslagconfiguratie leesrechten moet hebben op objecten in de bucket. In GCS is dit de rol van "Storage Object Viewer". In S3 is de beleidsactie "s3: GetObject".

Staten

new
is zojuist gemaakt of recentelijk bijgewerkt, maar nog niet getest.
valid
is verstreken validatie en is klaar om te worden gebruikt. Een organisatie moet ten minste één opslagconfiguratie in deze status hebben om bruikbaar te zijn.
invalid
heeft de validatietest mislukt. Moet worden bijgewerkt of opnieuw worden getest.
deactivated
is uitgeschakeld door de eigenaarorganisatie.

Changelog

2020-02-27

  • Voegt ondersteuning toe voor ondertekende URL's. Dit voegt signed_urls_enabled en signed_urls_expiry aan het opslagconfiguratieobject om het genereren van ondertekende URL's voor resultaten in te schakelen en hoe lang de ondertekende URL's actief moeten zijn.

Maak POST /configs/storage

Wanneer een nieuwe opslagconfiguratie wordt gemaakt, probeert de API deze te testen door een taak storage_config.test te maken. Deze taak publiceert eenvoudigweg een kleine testpayload met behulp van de config, die daarna veilig kan worden verwijderd. Als de bewerking slaagt, is de toestand van de configuratie ingesteld op valid en wordt deze bruikbaar voor polls. In het geval van een fout, zal de toestand van de config op invalid worden ingesteld, maar dit kan eenvoudig opnieuw worden getest met behulp van de testactie .

De eerste geldige opslagconfiguratie binnen een organisatie wordt automatisch ingesteld als de standaardinstelling van de organisatie.

Houd er rekening mee dat het maken van opslagconfiguren wordt gededupliceerd op het kenmerk url . Daarom is het niet mogelijk om twee opslagconfigs met dezelfde url maar met verschillende credentials .

parameters

naam type Beschrijving
url verplicht De opslagconfiguratie-URL voor uw bucket.
credentials verplicht De referenties voor de opslagconfiguratie voor uw bucket.

CURL gebruiken

Hier is de inhoud van het referentieswoordenboek afkomstig van het kopiëren van de inhoud van het JSON-inloggegevensbestand dat is gegenereerd tijdens het instellen van de Google Cloud Service-account.

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

Ricloud-py gebruiken

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
)

Ophalen GET /configs/storage/{storage_config ID}

CURL gebruiken

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

Ricloud-py gebruiken

import ricloud

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

Lijst GET /configs/storage

Opslagconfiguren in de deactivated status zijn standaard verborgen en kunnen alleen worden weergegeven door expliciete filtering.

parameters

naam type Beschrijving
type draad Filter op het type bak.
state draad Filter op de status van de configuratie.
date_created datetime-filter Filteren op aanmaakdatum.

CURL gebruiken

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

Ricloud-py gebruiken

import ricloud

storage_configs = ricloud.StorageConfig.list()

Update POST /configs/storage/{storage_config ID}

Met deze actie wordt een taak storage_config.test gemaakt om de geldigheid van eventuele wijzigingen in de configuratie te controleren.

parameters

naam type Omschrijving
url draad Werk de URL bij om naar een andere bucket of locatie in de bucket te wijzen. Houd er rekening mee dat het type emmer niet kan worden gewijzigd via deze bewerking.
credentials woordenboek Werk de inloggegevens bij.
state draad Alleen voor new of deactivated .

CURL gebruiken

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

Ricloud-py gebruiken

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

Verwijderen DELETE /configs/storage/{storage_config ID}

Verwijdert de opslagconfiguratie volledig van de API. Hiermee wordt alle gerelateerde inloggegevens verwijderd die zijn opgeslagen in de API.

CURL gebruiken

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

Ricloud-py gebruiken

Sinds 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

Met deze actie kunt u de geldigheid van een opslagconfiguratie opnieuw testen. De status van de config zal worden ingesteld op valid of invalid afhankelijk van de uitkomst van de test.

Merk op dat deze actie een taakresource retourneert.

CURL gebruiken

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

Ricloud-py gebruiken

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

Hoe kunnen we helpen?

Ons ondersteuningsteam is er om u te helpen!

Onze kantooruren zijn van maandag tot vrijdag van 09.00 tot 17.00 uur GMT. De tijd is momenteel 10:16 AM GMT.

We streven ernaar om alle berichten binnen één werkdag te beantwoorden.

Ga naar het ondersteuningsgedeelte › Neem contact op met het Enterprise-team ›
Ons geweldige ondersteuningsteam

Kunnen we dit artikel verbeteren?

We horen graag van gebruikers: Stuur ons een e-mail, laat een reactie achter of stuur een tweet @reincubate?

© 2008 - 2020 Reincubate Ltd. Alle rechten voorbehouden. Geregistreerd in Engeland en Wales #5189175, VAT GB151788978. Reincubate® is een geregistreerd handelsmerk. Privacybeleid & termen. Wij bevelen 2FA aan. Gebouwd met in Londen.