記事
· 21 hr 前 3m read

IRISで Amazon s3(クラウドストレージAPI)を使用する方法

これは InterSystems FAQ サイトの記事です。

ビジネスサービスやビジネスオペレーションで EnsLib.CloudStorage.InboundAdapter アダプタを使用したり、%Net.Cloud.Storage.Client を使用することで、Amazon s3(クラウドストレージAPI)のファイルにアクセスすることが可能です。

いずれの場合も、事前に Javaランタイムをシステムにインストールし、インストールしたJavaランタイムの JAVA_HOME 情報を、管理ポータルにて設定する必要があります(手順は後述します)。


今回は、%Net.Cloud.Storage.Client クラスを使用したサンプルをご紹介します。
手順は以下のようになります。


【手順】

以下のS3パケットにアクセスする手順になります。

   

(1)  事前に、コマンドプロンプトにて aws コマンドを使用して動作確認をしておきます(S3に存在しているファイル一覧がプロンプトに返ればOKです)。

> aws s3 ls s3://kake-s3
2025-04-30 16:20:52         32 abc.txt
2025-04-30 16:14:00      21529 messages.log

もしくは

>aws s3 --endpoint-url https://s3.ap-northeast-1.amazonaws.com ls s3://kake-s3
2025-04-30 16:20:52         32 abc.txt
2025-04-30 16:14:00      21529 messages.log


(2) Javaをインストールします
Java Runtime Environment (JRE)s 1.8


(3) 管理ポータルで %Java_Gateway の設定を行います

管理ポータル:
システム管理 > 構成 > 接続性 > 外部言語サーバ > %Java_Server 編集
  クラスパス .;C:\InterSystems\iris\dev\java\lib\1.8\intersystems-cloudclient-1.x.x.jar;       バージョンにより異なります。
  Javaホーム C:\Program Files\Java\jre1.8.0_451\        Javaインストールフォルダ

       

保存後、%Java_Server を Start ※以下のようなログで起動します

 
(4) 以下のコマンドをターミナルで実行します。

set region="ap-northeast-1"
set credentialsFile=""
set endPoint=""
set client = ##class(%Net.Cloud.Storage.Client).CreateClient(,0,credentialsFile,region,.tSC,endPoint)

読む

set bucketName = "isj-s3"

/// String
set data = client.DownloadBlobToString(bucketName,"abc.txt")
zwrite data
// data="InterSystems Japan"_$c(13,10)_"インターシステムズジャパン"_$c(13,10)
// ファイルはBOMなし&UTF-8で保存しています

/// Stream
set stream = client.DownloadBlobToStream(bucketName, "messages.log")
set i=stream.Read(200)   ;; 先頭200バイト
zwrite i
//i="07/08/23-08:48:50:868 (14307) 0 [Generic.Event] Allocated 496MB shared memory"_$c(10)_"07/08/23-08:48:50:869 (14307) 0 [Generic.Event] 32MB global buffers, 80MB routine buffers, 64MB journal buffers, 6MB buffe"


書く

set x="あいうえお"_$C(13,10)_"かきくけこ"
do client.UploadBlobFromString(bucketName, "abc.txt", x)


閉じる

do client.Close()
ディスカッション (0)0
続けるにはログインするか新規登録を行ってください