{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# COS ファイルアップロードテスト" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 導入手順\n", "\n", "```\n", "$ git clone https://github.com/ibm/ibm-cos-sdk-python.git\n", "$ cd ibm-cos-sdk-python\n", "$ pip install -r requirements.txt\n", "$ pip install -e .\n", "```\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# ライプラリのロード\n", "# 上のpipコマンドで導入が必要です。\n", "from ibm_botocore.client import Config\n", "import ibm_boto3" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# COS管理画面から認証情報をコピペして下さい。\n", "cos_credentials = {\n", " \"apikey\": \"xxxx\",\n", " \"endpoints\": \"https://control.cloud-object-storage.cloud.ibm.com/v2/endpoints\",\n", " \"iam_apikey_description\": \"xxxx\",\n", " \"iam_apikey_name\": \"サービス資格情報-1\",\n", " \"iam_role_crn\": \"crn:v1:bluemix:public:iam::::serviceRole:Writer\",\n", " \"iam_serviceid_crn\": \"xxxx\",\n", " \"resource_instance_id\": \"xxxx\"\n", "}" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# COSオブジェクトの生成\n", "auth_endpoint = 'https://iam.bluemix.net/oidc/token'\n", "service_endpoint = 'https://s3-api.us-geo.objectstorage.softlayer.net'\n", "cos = ibm_boto3.client('s3',\n", " ibm_api_key_id=cos_credentials['apikey'],\n", " ibm_service_instance_id=cos_credentials['resource_instance_id'],\n", " ibm_auth_endpoint=auth_endpoint,\n", " config=Config(signature_version='oauth'),\n", " endpoint_url=service_endpoint)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# テストを兼ねてバケットリストの取得\n", "for bucket in cos.list_buckets()['Buckets']:\n", " print(bucket['Name'])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": false }, "outputs": [], "source": [ "# ファイルアップロードサンプル\n", "# 前提 元ファイル ローカルの data/mnist配下\n", "# コピー先 bucketに 'mnist/''のプレフィックス付きで保存\n", "\n", "filenames = [\n", " 't10k-labels-idx1-ubyte',\n", " 't10k-images-idx3-ubyte',\n", " 'train-labels-idx1-ubyte',\n", " 'train-images-idx3-ubyte'\n", "]\n", "\n", "dirname = 'mnist'\n", "sourcedir = 'data/mnist'\n", "bucket = 'gan-poc-input01'\n", "\n", "for filename in filenames:\n", " to_filename = dirname + \"/\" + filename\n", " from_filename = sourcedir + \"/\" + filename\n", " print(from_filename, to_filename)\n", " # ダウンロードサンプル\n", " #cos.download_file(Bucket=bucket, Key=filename, Filename=filename)\n", " # アップロードサンプル\n", " cos.upload_file(Filename=from_filename, Bucket=bucket, Key=to_filename )" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }