Slide 31
Slide 31 text
3. コードからの操作
(4) SDK(python)による操作
31
© 2023 IBM Corporation
import ibm_boto3
from ibm_botocore.client import Config, ClientError
import os
import json
import glob
# Get from Configmap on Kubernetes
COS_ENDPOINT = os.getenv('COS_ENDPOINT')
COS_AUTH_ENDPOINT = os.getenv('COS_AUTH_ENDPOINT')
COS_RESOURCE_CRN = os.getenv('COS_RESOURCE_CRN')
COS_BUCKET_LOCATION = os.getenv('COS_BUCKET_LOCATION')
COS_HLS_BUCKET = os.getenv('COS_HLS_BUCKET')
# Get from Secrets on Kubernetes
COS_API_KEY_ID = os.getenv('COS_API_KEY_ID')
# Create resources
cos = ibm_boto3.resource("s3",
ibm_api_key_id=COS_API_KEY_ID,
ibm_service_instance_id=COS_RESOURCE_CRN,
ibm_auth_endpoint=COS_AUTH_ENDPOINT,
config=Config(signature_version="oauth"),
endpoint_url=COS_ENDPOINT
)
def download_item(bucket_name, item_name):
# ⼊⼒元のディレクトリが存在しない場合は作成する
try:
if not os.path.exists(INPUT_PATH):
os.mkdir(INPUT_PATH)
print("Created Input Directory: {0}".format(INPUT_PATH))
except Exception as e:
print("Failed to create INPUT DIRECTORY - {0}".format(e))
# 変換元となるファイルのダウンロードする先を設定する
file_path = INPUT_PATH + item_name.split("/")[-1]
# 変換元となるファイルをダウンロードする
try:
cos.Object(bucket_name, item_name).download_file(file_path)
print("Download succeed !!")
except ClientError as be:
print("CLIENT ERROR: {0}¥n".format(be))
except Exception as e:
print("Unable to retrieve file contents: {0}".format(e))
ダウンロード
処理
COSのインス
タンスに接続