ส่วนขยาย Google Cloud Storage

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่ เอกสารประกอบของ Apigee X
info

เวอร์ชัน: 1.4.1

แสดงรายการ ดาวน์โหลด และสร้าง URL ที่ลงชื่อแล้วสำหรับไฟล์ใน Bucket ของ Cloud Storage

เนื้อหานี้มีข้อมูลอ้างอิงสำหรับการกำหนดค่าและการใช้ส่วนขยายนี้ คุณต้องดำเนินการต่อไปนี้ก่อนใช้ส่วนขยายนี้จากพร็อกซี API

  1. สร้าง Bucket ของ Cloud Storage

  2. อัปโหลดออบเจ็กต์ ไปยัง Bucket

  3. ให้สิทธิ์เข้าถึง Bucket แก่บัญชีบริการ GCP ที่แสดงถึงส่วนขยาย Google Cloud Storage ดูข้อมูลเพิ่มเติมเกี่ยวกับบทบาทที่จะใช้ได้ที่บทบาท Cloud Storage ดูข้อมูลเพิ่มเติมเกี่ยวกับสิทธิ์ใน Cloud Storage ได้ที่ การใช้สิทธิ์ Identity and Access Management (IAM)

  4. ใช้คอนโซล GCP เพื่อสร้างคีย์สำหรับบัญชีบริการ

  5. ใช้เนื้อหาของไฟล์ JSON คีย์ที่ได้เมื่อ เพิ่มและกำหนดค่าส่วนขยายโดยใช้ข้อมูลอ้างอิงการกำหนดค่า

เกี่ยวกับ Cloud Storage

Cloud Storage เป็นบริการพื้นที่เก็บข้อมูลไฟล์ที่ปลอดภัย ทนทาน และปรับขนาดได้ หากเพิ่งเริ่มต้นใช้งาน Cloud Storage บทแนะนำการเริ่มต้นใช้งานอย่างรวดเร็วในเอกสารประกอบของ Cloud Storage เป็นจุดเริ่มต้นที่ดี

ตัวอย่าง

ตัวอย่างต่อไปนี้จะแสดงวิธีกำหนดค่าการรองรับการดำเนินการของส่วนขยาย Cloud Storage โดยใช้นโยบาย ExtensionCallout

แสดงรายการไฟล์

ในตัวอย่างต่อไปนี้ การดำเนินการ listFiles ของส่วนขยายจะดึงข้อมูลรายการไฟล์และแสดงผลไฟล์เหล่านั้นในอาร์เรย์ การดำเนินการ listFiles ไม่ต้องใช้พารามิเตอร์อินพุต

<?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>

ค่าการตอบกลับจะมีลักษณะดังนี้

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

นโยบาย Assign Message ต่อไปนี้จะดึงข้อมูลค่าการตอบกลับจากนโยบาย ExtensionCallout ด้านบนและคัดลอกค่าดังกล่าวในเพย์โหลดการตอบกลับ

<?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>

ดาวน์โหลดไฟล์

นโยบาย ExtensionCallout ต่อไปนี้ใช้ส่วนขยาย Google Cloud Storage เพื่อดาวน์โหลดไฟล์ข้อความธรรมดาที่มีเนื้อหาเป็น 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>

ค่าการตอบกลับจะมีลักษณะดังนี้

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

นโยบาย Assign Message ต่อไปนี้จะดึงข้อมูลค่าที่ส่วนขยายแสดงผลและคัดลอกค่าดังกล่าวลงในเพย์โหลดการตอบกลับ

<?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>

สร้าง URL ที่ลงชื่อแล้ว

นโยบาย ExtensionCallout ต่อไปนี้ใช้ส่วนขยายนี้เพื่อสร้าง URL สำหรับดาวน์โหลดไฟล์ที่ระบุจาก Bucket ของ Cloud Storage โดยจะส่งชื่อไฟล์พร้อมกับวันที่ที่ URL ควรหมดอายุและใช้งานไม่ได้อีกต่อไป

<?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>

ค่าที่แสดงผลของส่วนขยายจะมีลักษณะดังต่อไปนี้

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

นโยบาย Assign Message ต่อไปนี้จะดึงข้อมูลค่าที่ส่วนขยายแสดงผลและคัดลอกค่าดังกล่าวลงในเนื้อหาการตอบกลับ

<?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>

การดำเนินการ

downloadFile

ดาวน์โหลดไฟล์ที่ระบุ

พารามิเตอร์คำขอ

พารามิเตอร์ คำอธิบาย ประเภท ค่าเริ่มต้น ต้องระบุ
fileName ไฟล์ที่จะดาวน์โหลด สตริง ไม่มี ได้

ไวยากรณ์

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

ตัวอย่าง

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

การตอบกลับ

JSON ที่แสดงออบเจ็กต์ที่มีเนื้อหาของไฟล์ที่ดาวน์โหลด เช่น

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

listFiles

แสดงรายการไฟล์ที่พร้อมให้ดาวน์โหลด

พารามิเตอร์คำขอ

ไม่มี

การตอบกลับ

อาร์เรย์ของชื่อไฟล์ เช่น

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

generateSignedURL

สร้าง URL ที่ลงชื่อแล้วสำหรับไฟล์ที่ระบุใน Bucket โดยคุณสามารถใช้ URL นี้เพื่อดาวน์โหลดไฟล์ได้

พารามิเตอร์คำขอ

พารามิเตอร์ คำอธิบาย ประเภท ค่าเริ่มต้น ต้องระบุ
fileName ชื่อออบเจ็กต์ Cloud Storage ที่จะสร้าง URL ที่ลงชื่อแล้ว สตริง ไม่มี ได้
expiresOn วันที่ URL ที่ลงชื่อแล้วควรหมดอายุ สตริง ไม่มี ไม่

ไวยากรณ์

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

ตัวอย่าง

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

การตอบกลับ

JSON ที่แสดงออบเจ็กต์ที่มี URL ที่ลงชื่อแล้ว เช่น

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

ข้อมูลอ้างอิงการกำหนดค่า

ใช้ข้อมูลต่อไปนี้เมื่อกำหนดค่าและใช้งานส่วนขยายนี้เพื่อใช้ในพร็อกซี API ดูขั้นตอนการกำหนดค่าส่วนขยายโดยใช้คอนโซล Apigee ได้ที่ การเพิ่มและกำหนดค่าส่วนขยาย

พร็อพเพอร์ตี้ส่วนขยายทั่วไป

พร็อพเพอร์ตี้ต่อไปนี้มีอยู่ในส่วนขยายทุกรายการ

พร็อพเพอร์ตี้ คำอธิบาย ค่าเริ่มต้น ต้องระบุ
name ชื่อที่คุณกําหนดให้การกําหนดค่านี้ของส่วนขยาย ไม่มี ได้
packageName ชื่อแพ็กเกจส่วนขยายที่ระบุโดย Apigee Edge ไม่มี ได้
version หมายเลขเวอร์ชันของแพ็กเกจส่วนขยายที่คุณกําหนดค่าส่วนขยาย ไม่มี ได้
configuration ค่าการกําหนดค่าเฉพาะสําหรับส่วนขยายที่คุณกําลังเพิ่ม ดูพร็อพเพอร์ตี้สําหรับแพ็กเกจส่วนขยายนี้ ไม่มี ได้

พร็อพเพอร์ตี้สำหรับแพ็กเกจส่วนขยายนี้

พร็อพเพอร์ตี้ คำอธิบาย ค่าเริ่มต้น ต้องระบุ
bucketName Bucket GCS ที่ส่วนขยายนี้ควรโต้ตอบด้วย ไม่มี ได้