Oracle Cloud Infrastructure (OCI)의 Object Storage에 파일 업로드 (bash 스크립트)

하고 싶은 일



bash 스크립트에서 (oci 명령을 사용하지 않고) Oracle Cloud Infrastructure의 Object Storage에 파일 업로드

참고한 문서



Oracle Cloud Infrastructure Documentation - Request Signatures
Oracle Cloud: upload large files through the Object Store REST API
코솔의 블로그 (OCI 객체 스토리지의 논리 구조 및 URL)

사전 작업


  • OCI 사용자 생성
  • 버킷 만들기
  • 키 쌍 만들기
  • API 키 추가

  • OCI 사용자 작성 절차



    절차는 할애

    버킷 생성 절차



    절차는 할애

    키 쌍을 만드는 절차



    키 페어의 작성은, 이하의 문서를 참고에.

    Oracle Cloud Infrastructure Documentation - Required Keys and OCIDs - How to Generate an API Signing Key

    API 키 추가 단계



    1. "OCI 사용자 작성"에서 작성한 사용자 (오브젝트 스토리지 연결 용 사용자)를 사용하여 OCI 콘솔에 로그인
    2. 화면 오른쪽 상단의 사람 마크 → 사용자 ID (메일 주소)를 누릅니다.
    3. "공개 키 추가"버튼을 누르십시오.

    4. 팝업 화면에 ~/.oci/oci_api_key_public.pem의 내용물을 붙여 "추가"버튼을 누르십시오.

    ID 확인



    스크립트 내부에 지정할 다양한 ID를 확인합니다.
  • 임차인 ID
  • 사용자 ID
  • Key 지문

  • 테넌트 ID 확인 절차



    화면 오른쪽 상단의 사람 마크 → "테넌시 : <테넌트 이름>"을 누르고 다음 화면에서 OCID의 "복사"링크를 누릅니다.


    사용자 ID 확인 절차



    화면 오른쪽 상단의 사람 마크 → 사용자 ID (메일 주소)를 누른 후 다음 화면에서 OCID의 "복사"링크를 누릅니다.


    키 지문 확인 절차



    위의 "키 쌍 생성 절차"에서 만든 비밀 키에 대해 다음 명령을 실행합니다.
    「API 키」화면에서도 확인 가능합니다.
    $openssl rsa -pubout -outform DER -in ~/.oci/oci_api_key.pem | openssl md5 -c

    스크립트 작성



    1. 다음 스크립트를 복사하여 붙여넣습니다.
    $vi oci-curl.func
    Oracle Cloud Infrastructure Documentation - Request Signatures - View the Bash sample in full screen for easier reading

    2. 스크립트의 다음 변수를 다시 씁니다.
    function oci-curl {
        # TODO: update these values to your own
            local tenancyId="ocid1.tenancy.oc1..aaaaaaaaba3pv6wkcr4jqae5f15p2b2m2yt2j6rx32uzr4h25vqstifsfdsq";
            local authUserId="ocid1.user.oc1..aaaaaaaat5nvwcna5j6aqzjcaty5eqbb6qt2jvpkanghtgdaqedqw3rynjq";
            local keyFingerprint="20:3b:97:13:55:1c:5b:0d:d3:37:d8:50:4e:c5:3a:34";
            local privateKeyPath="/Users/someuser/.oci/oci_api_key.pem";
    
  • tenancyId는 "ID 확인"에서 확인한 임차인 ID의 값으로 바뀝니다.
  • authUserId는 "ID 확인"에서 확인한 사용자 ID 값으로 바뀝니다.
  • keyFingerprint는 "ID 확인"에서 확인한 키 지문의 값으로 바꿉니다.
  • privateKeyPath는 "키 쌍 생성 절차"에서 만든 개인 키의 경로로 바뀝니다.

    3. oci-curl 함수의 인수에 지정하는 변수를 설정 (선택 사항)
    인수에 달라도 괜찮습니다만, 지정하는 값의 설명 때문에, 여기서는 변수화하고 있습니다.
    $OCI_HOSTURL=objectstorage.ap-tokyo-1.oraclecloud.com
    ※ 오브젝트 스토리지의 리소스 URL은 objectstorage.<지역명>.oraclecloud.com
    $OCI_TENANTNAME=<테넌트 이름>
    $OCI_BUCKETNAME=<버킷 이름>
    $UPLOAD_FILE_PATH=<업로드할 파일의 로컬 경로>
    $OCI_OBJECTFILE_NAME=<개체 스토리지의 파일 이름>

    4. 파일 업로드
    $.oci-curl.func
    $oci-curl\${OCI_HOSTURL}PUT\${UPLOAD_FILE_PATH} "/n/\${OCI_TENANTNAME}/b/\${OCI_BUCKETNAME}/o/\${OCI_OBJECTFILE_NAME}"
    ※Proxy 서버를 경유하는 경우는, 사전에 이하 환경 변수도 설정합니다
    $ export https_proxy=<프록시 서버 IP>:<포트>

    → 파일이 업로드되었는지 확인합니다.
  • 좋은 웹페이지 즐겨찾기