Google Cloud Storage 확장 프로그램

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

버전: 1.4.1

Cloud Storage 버킷에 있는 파일의 서명된 URL을 나열하고 다운로드하고 생성합니다.

이 콘텐츠는 이 확장 프로그램을 구성하고 사용하기 위한 참조를 제공합니다. API 프록시에서 이 확장 프로그램을 사용하려면 다음을 수행해야 합니다.

  1. Cloud Storage 버킷을 만듭니다.

  2. 버킷에 객체 업로드

  3. Google Cloud Storage 확장 프로그램을 나타내는 GCP 서비스 계정에 버킷에 액세스할 수 있는 권한을 부여합니다. 사용할 역할에 대한 자세한 내용은 Cloud Storage 역할을 참조하세요. Cloud Storage의 권한에 대한 자세한 내용은 Identity and Access Management (IAM) 권한 사용을 참조하세요.

  4. GCP 콘솔을 사용하여 서비스 계정의 키를 생성합니다.

  5. 구성 참조를 사용하여 확장 프로그램을 추가 및 구성할 때 결과 키 JSON 파일의 콘텐츠를 사용합니다.

Cloud Storage 정보

Cloud Storage는 안전하고 내구성과 확장성이 뛰어난 파일 스토리지를 위한 서비스입니다. Cloud Storage를 처음 접하는 경우 Cloud Storage 문서의 빠른 시작부터 시작하는 것이 좋습니다.

샘플

다음 예는 Extension콜아웃 정책을 사용하여 Cloud Storage 확장 프로그램 작업에 대한 지원을 구성하는 방법을 보여줍니다.

파일 나열

다음 예에서 확장 프로그램의 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"]

다음 메시지 할당 정책은 위의 ExtensionCall 정책에서 응답 값을 검색하여 응답 페이로드에 복사합니다.

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

파일 다운로드

다음 ExtensionCall 정책은 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."}

다음 메시지 할당 정책은 확장 프로그램에서 반환된 값을 검색하여 응답 페이로드에 복사합니다.

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

다음 ExtensionCall 정책은 이 확장 프로그램을 사용하여 Cloud Storage 버킷에서 지정된 파일을 다운로드하기 위한 URL을 생성합니다. 이 메서드는 파일 이름과 함께 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"}

다음 메시지 할당 정책은 확장 프로그램에서 반환한 값을 검색하여 응답 본문에 복사합니다.

<?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을 만듭니다. 이 URL을 사용하여 파일을 다운로드할 수 있습니다.

요청 매개변수

매개변수 설명 유형 기본 계정 필수
fileName 서명된 URL을 생성할 Cloud Storage 객체의 이름입니다. 문자열 없음 예.
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>

응답

서명된 URL이 있는 객체를 나타내는 JSON입니다. 예를 들면 다음과 같습니다.

{"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 이 확장 프로그램이 상호작용해야 하는 GCS 버킷입니다. 없음 예.