#chiroito ’s blog

Java を中心とした趣味の技術について

Oracle Object Storage へマルチパート・アップロードしてみた

この記事はOracle Cloud Advent Calendar 2018 - Adventarの12月8日の記事として書かれています。

大きなファイルのアップロードにはマルチパートアップロードが有効です。今回はOracle Cloudのオブジェクトストレージにファイルをマルチパートアップロードしてみます。

Webのコンソールからはマルチパートアップロードできないため、Oracle Cloud Infrastructure (OCI) CLI を使用します。 OCI CLIでマルチパート・アップロードするには事前にバケットを作成し、バケット名(下図の赤四角)とバケットが所属するNamespace(下図の紫角丸四角)が必要です。

f:id:chiroito:20181201190458p:plain

マルチパートアップロードにはoci os object putコマンドを使用します。パラメータとして以下を指定します。

  • ネームスペースを-ns
  • バケット名を-bn
  • アップロードするファイルを--file
  • オブジェクト・パーツのサイズを--part-size
  • 並列度を--parallel-upload-count

sandbox.7zファイルを20MB ごとにオブジェクト・パーツへ分割し、4並行でアップロードしてみます。

> oci os object put -ns oxxxr -bn Cxxxt --file sandbox.7z --part-size 20 --parallel-upload-count 4
Upload ID: 7xxxxxxe-8xx0-5xxc-fxxb-9xxxxxxxxxxb
Split file into 12 parts for upload.
Uploading object  [####################################]  100%
{
  "etag": "7xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx4",
  "last-modified": "Sat, 24 Nov 2018 08:23:19 GMT",
  "opc-multipart-md5": "VC+BNIk9Xh3T7+rf9Ss4pQ==-12"
}

実行するとUploading object [------------------------------------] 0%で止まります。アップロードの進捗はパーツごとにしか更新されないようです。

ファイルがアップロードされたことをコンソールで確認してみます。

f:id:chiroito:20181201190127p:plain

sandbox.7zファイルが表示されています。

Oracle Digital Assistantのチャットボットをエクスポートしてみた

この記事は「Oracle Cloud その2 Advent Calendar 2018」の12月7日の記事として書かれています。

Oracle Degital Assistant で作ったチャットボットをExportしてみましょう。

チャットボットの一覧画面でエクスポートしたいチャットボットのメニューを選択して、Export Botとするとチャットボットをエクスポートできます。

f:id:chiroito:20181201184643p:plain
MENU - Development - Bots

エクスポートしたチャットボットは zip 形式のファイルになります。

インポートするときは同じ画面の右上にあるImport Botで先ほどエクスポートしたファイルを選択すればインポートされます。 f:id:chiroito:20181201185036p:plain

Oracle Digital Assistantのチャットボット入出力をGoogle翻訳で翻訳してみた

この記事は「Oracle Cloud その2 Advent Calendar 2018」の12月6日の記事として書かれています。

Oracle Digital Assistant は外部の翻訳サービスを使って翻訳できます。 本例では、Google翻訳を使用して翻訳します。事前に Google Cloud Platform で Google翻訳の Authorization Tokenを取得してください。

Oracle Digital Assistant の設定

画面左上のMenuから Developments - Botsと遷移し、右側のハンバーガーメニュー - Translation Service を選択します。

f:id:chiroito:20181201173701p:plain
Bots

Translation Services のダイアログが表示され、+ Serviceを選択すると以下のような入力画面になります。 次の 3 点を入力します。

  • Service Type を Google
  • Base URL を https://translation.googleapis.com/language/translate/v2
  • Authorization Token を Google 翻訳から取得した Token

f:id:chiroito:20181201175113p:plain

Google 翻訳の情報を入力し、入力が完了すると以下のように表示されます。

f:id:chiroito:20181201173728p:plain
Translation Service

チャットボットの個別設定

チャットボットの個別設定は以下の流れになります。

  1. 使用する翻訳サービスの選択
  2. 入出力を翻訳サービスへ橋渡しする

使用する翻訳サービスの選択

次に翻訳したいチャットボットの画面へ遷移し、SettingsでTranslation Service に Google を選択します。

f:id:chiroito:20181201173804p:plain
Settings - General

入出力を翻訳サービスへ橋渡しする

本来はFlows 画面で、+Componentsからコンポーネントを足していきます。

 流れが長いので今回はチャットボットのソースコードを以下のように直接追加します。赤枠にあるコードを同じ場所に追加してください。図の下にテキストを記載していますのでコピーするだけで対応可能です。

f:id:chiroito:20181201173852p:plain
Flows

テキストコード

(略)
context:
  variables:
    greeting: "string"
    name: "string"
    autoTranslate: "boolean" 
    translated: "string"

states:
  setAutoTranslate:
    component: "System.SetVariable"
    properties:
      variable: "autoTranslate"
      value: true
    transitions: {}
  detect:
    component: "System.DetectLanguage"
    properties: {}
    transitions: {}
  translate:
    component: "System.TranslateInput"
    properties:
      variable: "translated"
    transitions: {}
  intent:
    component: "System.Intent"
    properties:
      variable: "iResult"
      sourceVariable: "translated" 
      confidenceThreshold: 0.4
  askGreeting:
(略)

確認

日本語で話しかけてみましょう。 ※Google翻訳で英語と日本語を変換しているので、英語では無かった挨拶はちゃんと翻訳されていません・・・Google翻訳の精度向上に期待です。 f:id:chiroito:20181201174019p:plain