Ekstensi Google Cloud Storage

Anda melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Versi: 1.4.1

Membuat daftar, mendownload, dan membuat URL yang ditandatangani untuk file di bucket Cloud Storage.

Konten ini memberikan referensi untuk mengonfigurasi dan menggunakan ekstensi ini. Sebelum menggunakan ekstensi ini dari proxy API, Anda harus:

  1. Membuat bucket Cloud Storage.

  2. Mengupload objek ke bucket Anda.

  3. Memberikan izin untuk mengakses bucket ke akun layanan GCP yang mewakili ekstensi Google Cloud Storage Anda. Untuk mengetahui informasi selengkapnya tentang peran yang akan digunakan, lihat Peran Cloud Storage. Untuk mengetahui informasi selengkapnya tentang izin di Cloud Storage, lihat Menggunakan Izin Identity and Access Management (IAM).

  4. Menggunakan Konsol GCP untuk membuat kunci untuk akun layanan.

  5. Menggunakan konten file JSON kunci yang dihasilkan saat menambahkan dan mengonfigurasi ekstensi menggunakan referensi konfigurasi.

Tentang Cloud Storage

Cloud Storage adalah layanan untuk penyimpanan file yang aman, tahan lama, dan skalabel. Jika Anda baru mulai menggunakan Cloud Storage, mulai cepat di dokumentasi Cloud Storage adalah tempat yang tepat untuk memulai.

Contoh

Contoh berikut mengilustrasikan cara mengonfigurasi dukungan untuk tindakan ekstensi Cloud Storage menggunakan kebijakan ExtensionCallout.

Membuat daftar file

Dalam contoh berikut, tindakan listFiles ekstensi mengambil daftar file dan menampilkannya dalam array. Tindakan listFiles tidak memerlukan parameter input.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="false" enabled="true" name="Get-Storage-File-List">
    <DisplayName>Get Storage File List</DisplayName>
    <Connector>cloud-storage-extension-example</Connector>
    <Action>listFiles</Action>
    <Input><![CDATA[{}]]></Input>
    <Output parsed="false">storage.filelist.retrieved</Output>
</ConnectorCallout>

Nilai respons terlihat seperti ini:

["example-text.txt","example-image.png"]

Kebijakan Tetapkan Pesan berikut mengambil nilai respons dari kebijakan ExtensionCallout di atas dan menyalinnya dalam payload respons.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Storage-File-List">
    <DisplayName>Assign Storage File List</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{storage.filelist.retrieved}</Payload>
    </Set>
</AssignMessage>

Mendownload file

Kebijakan ExtensionCallout berikut menggunakan ekstensi Google Cloud Storage untuk mendownload file teks sederhana yang kontennya hanya Some example text.,

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="false" enabled="true" name="Download-File">
    <DisplayName>Download File</DisplayName>
    <Connector>cloud-storage-extension-example</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[{"fileName": "example-text.txt"}]]></Input>
    <Output>storage.file.retrieved</Output>
</ConnectorCallout>

Nilai respons terlihat seperti ini:

{"content":"Some example text."}

Kebijakan Tetapkan Pesan berikut mengambil nilai yang ditampilkan oleh ekstensi dan menyalinnya ke dalam payload respons.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Storage-File-List">
    <DisplayName>Assign Storage File List</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{storage.file.retrieved}</Payload>
    </Set>
</AssignMessage>

Membuat URL yang ditandatangani

Kebijakan ExtensionCallout berikut menggunakan ekstensi ini untuk membuat URL untuk mendownload file yang ditentukan dari bucket Cloud Storage. Kebijakan ini meneruskan nama file, beserta tanggal setelah URL akan berakhir masa berlakunya dan tidak lagi berfungsi.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="false" enabled="true" name="Get-Signed-URL">
    <DisplayName>Get Signed URL</DisplayName>
    <Connector>cloud-storage-extension-example</Connector>
    <Action>generateSignedURL</Action>
    <Input><![CDATA[{
        "fileName" : "example-text.txt",
        "expiresOn" : "2018-08-05"
    }]]></Input>
    <Output>storage.url.retrieved</Output>
</ConnectorCallout>

Nilai yang ditampilkan ekstensi terlihat seperti berikut.

{"url":"https://storage.googleapis.com/storage-extension-example/example-text.txt?GoogleAccessId=extension-test%40my-test-33333.iam.gserviceaccount.com&Expires=1533427200&Signature=Y1cE1DCHesWeIZILRhdIuDR%2FhzZXZ%2BPeY3J1PUkRiosFYj41itHBWh2%2BTQgH9kI6E8s2mWrVDFU43YR7s8Tm9W5VgWRwh0nXSactQ0xKbkKbGZmCcWxgIscOezc1zc%2Bp7lnXSx1qd4wIlIKVH4KCd9WLx4qB1dLxGNxMKB32tA3dio5IiMXaHEA%2FR2fYc0Pjh45t8L5rilk5pekv7jfd3sfsgdfgfdglkj%2F7E%2FlJ%2B60RnetqV2IDqrc0sVEgSLTpgTbDGU%2Ft3EcitRUFOSdOb5czt7CiIwKAYSmDEFMSNHHiNTWjvLzq4IU%2BCa4Z5aKyvww%3D%3D"}

Kebijakan Tetapkan Pesan berikut mengambil nilai yang ditampilkan oleh ekstensi dan menyalinnya ke dalam isi respons.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Storage-File-URL">
    <DisplayName>Assign Storage File URL</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{storage.url.retrieved}</Payload>
    </Set>
</AssignMessage>

Tindakan

downloadFile

Mendownload file yang ditentukan.

Parameter permintaan

Parameter Deskripsi Jenis Default Wajib
fileName File yang akan didownload. String Tidak ada. Ya.

Sintaksis

<Input><![CDATA[{"fileName" : "the-file-to-download"}]]></Input>

Contoh

<Input><![CDATA[{"fileName" : "example-text.txt"}]]></Input>

Respons

JSON yang mewakili objek dengan konten file yang didownload. Contoh:

{"content":"Some example text."}

listFiles

Mencantumkan file yang tersedia untuk didownload.

Parameter permintaan

Tidak ada.

Respons

Array nama file. Contoh:

["example-text.txt","example-image.png"]

generateSignedURL

Membuat URL yang ditandatangani untuk file yang ditentukan di bucket. URL ini dapat digunakan untuk mendownload file.

Parameter permintaan

Parameter Deskripsi Jenis Default Wajib
fileName Nama objek Cloud Storage yang akan dibuat URL yang ditandatangani. String Tidak ada. Ya.
expiresOn Tanggal URL yang ditandatangani akan berakhir masa berlakunya. String Tidak ada. Tidak.

Sintaksis

<Input><![CDATA[{
  "fileName" : "file-for-which-to-generate-url",
  "expiresOn" : "date-to-expire-url"
}]]></Input>

Contoh

<Input><![CDATA[{
  "fileName" : "example-text.txt",
  "expiresOn" : "2018-08-05"
}]]></Input>

Respons

JSON yang mewakili objek dengan URL yang ditandatangani. Contoh:

{"url":"https://storage.googleapis.com/storage-extension-example/example-text.txt?GoogleAccessId=extension-test%40my-test-33333.iam.gserviceaccount.com&Expires=1533427200&Signature=Y1cE1DCHesWeIZILRhdIuDR%2FhzZXZ%2BPeY3J1PUkRiosFYj41itHBWh2%2BTQgH9kI6E8s2mWrVDFU43YR7s8Tm9W5VgWRwh0nXSactQ0xKbkKbGZmCcWxgIscOezc1zc%2Bp7lnXSx1qd4wIlIKVH4KCd9WLx4qB1dLxGNxMKB32tA3dio5IiMXaHEA%2FR2fYc0Pjh45t8L5rilk5pekv7jfd3sfsgdfgfdglkj%2F7E%2FlJ%2B60RnetqV2IDqrc0sVEgSLTpgTbDGU%2Ft3EcitRUFOSdOb5czt7CiIwKAYSmDEFMSNHHiNTWjvLzq4IU%2BCa4Z5aKyvww%3D%3D"}

Referensi Konfigurasi

Gunakan hal berikut saat Anda mengonfigurasi dan men-deploy ekstensi ini untuk digunakan di proxy API. Untuk mengetahui langkah-langkah mengonfigurasi ekstensi menggunakan konsol Apigee, lihat Menambahkan dan mengonfigurasi ekstensi.

Properti ekstensi umum

Properti berikut ada untuk setiap ekstensi.

Properti Deskripsi Default Wajib
name Nama yang Anda berikan pada konfigurasi ekstensi ini. Tidak ada Ya
packageName Nama paket ekstensi seperti yang diberikan oleh Apigee Edge. Tidak ada Ya
version Nomor versi untuk paket ekstensi tempat Anda mengonfigurasi ekstensi. Tidak ada Ya
configuration Nilai konfigurasi khusus untuk ekstensi yang Anda tambahkan. Lihat Properti untuk paket ekstensi ini Tidak ada Ya

Properti untuk paket ekstensi ini

Properti Deskripsi Default Wajib
bucketName Bucket GCS yang akan digunakan ekstensi ini untuk berinteraksi. Tidak ada. Ya.