Opslagconfigs

bijgewerkt
Cover image for: Opslagconfigs

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 Beschrijving
id storage config ID Resource identifier.
resource string, always storage_config Resource type specifier.
organisation organisation ID The organisation the resource belongs to.
type string One of: gs, s3. This is a read-only attribute generated from the url.
url string A URL representing the target to which results will be published.
credentials dictionary A dictionary containing the credential information used by the API to authenticate against the storage service.
signed_urls_enabled optional bool, default false Whether signed URLs should be generated for results published using the storage config.
signed_urls_expiry optional timedelta If signed URLs are enabled, the time, in seconds, they will remain valid.
state string One of: 'new', 'valid', 'invalid', 'deactivated'.
date_created datetime When the resource was created.

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

name type description
url required The storage configuration URL for your bucket.
credentials required The storage configuration credentials for your 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 string Filter by backing bucket's type.
state string Filter by the configuration's state.
date_created datetime filter Filter by resouce creation date.

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 Beschrijving
url string Update the URL to point to a different bucket or location within the bucket. Note that the type of a bucket cannot be changed through this operation.
credentials dictionary Update the credentials.
state string Only to new or 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 1:10 AM GMT.

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

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 - 2024 Reincubate Ltd. Alle rechten voorbehouden. Geregistreerd in Engeland en Wales #5189175, VAT GB151788978. Reincubate® en Camo® zijn geregistreerde handelsmerken. Privacybeleid & termen.