今回はForgeのアクセストークンを利用してファイルのアップロード、変換処理まで紹介していくが、トークンの有効期限が切れている場合、処理を行えないので前回の記事を参考にトークンを再取得してくれ。
アップロード先のバケットを作成
では早速APIを利用してのアップロード手順を説明しよう。
まずはアップロード先のバケット(フォルダのようなもの)を作成する。
Postmanを起動し「3.-バケットの作成.postman_collection.json」をインポートしてくれ。
まずHeadersタブをクリックする。
AuthorizationのVALUEが「Bearer <Your Access Token>」となっているので、<Your Access Token>を取得しておいたアクセストークンに置きかえる。
次にBodyタブをクリック。
bucketKeyはユニークな名前でなければいけないので、あまり付けられてなさそうな名前を適当に選んでくれ。
policyKeyは次の3つのうち、いずれかを入力。
transient | 24時間で自動消去 |
temporary | 30日で自動消去 |
persistent | 自身で消去するまで保持 |
バケット自体は自身で削除しない限り永続的なものなので、このpolicyKeyではバケット内のファイル寿命を指定する。
ここでは「persistent」を入力することにしよう。
Sendボタンを押し「bucketKey」などのJSONレスポンスが返ってくればバケットの作成は成功だ。
バケットにファイルをアップロード
Postmanで「4.-デザイン-ファイルのアップロード.postman_collection.json」をインポートしてくれ。
まずはバケットの中身を確認しよう。
サイドメニューから「List objects in OSS」を選択。
Sendボタン左のURL欄に先ほど作ったバケットの名前を入力(:Your Bucket Nameのところ)し、Headersタブ「Authorization」のValueにアクセストークンを入力する。
Sendボタンを押すと下記のJSONレスポンスが返る。
{
"items": []
}
現時点では何もファイルをアップロードしていないのでこれで良い。
次にサイドメニューから「Upload a file to bucket」を選択し、例によってHeadersタブでアクセストークンを貼り付ける。
次にURL欄の「:Your Bucket Name」にバケット名を「:Your Design File」にアップロードするファイル名を入力。
Bodyタブ直下のラジオボタンで「binary」を選択し「Select file」からファイルを選択する。
ここではサンプルとして前回の記事でcloneしてきたプロジェクトのmodelディレクトリから「Chair.f3d」を選択してくれ。
これでSendボタンを押すと「objectId」などのJSONレスポンスが返り、アップロードが完了する。
では、あらためてバケットの中身を見ていこう。
先ほど紹介した手順のとおり「List objects in OSS」からAPIを叩くと、先ほどアップロードしたファイルの情報が返ってくる。
このうち「objectId」の値が後で必要となるのでコピーしておく。
ひとまずここまでの手順でForgeクラウド上のバケットに3Dモデルのファイルをアップロードすることができた。
Model Derivative APIによるファイル変換
Postmanで「5.-変換リクエスト.postman_collection.json」を開き、サイドメニューから「Convert for viewing」を選ぶ。
例によりHeadersタブからアクセストークンを入力しよう。
次にBodyタブへ進み「Your Encoded URN」を入力する。
ここで入力する値は先ほどコピーしておいたobjectIdをBase64エンコードした値となるので、コピーした値を変換サイトなどでBase64形式に変換しよう。
変換した値を貼り付けSendボタンを押し、result: “success”と返ってくれば変換処理は完了だ。
これでアップロードしたファイルがSVFというファイル形式に変換され、Forge Viewerで利用することができるようになる。
なお、アクセストークンの有効期限は3599秒(約1時間)となっているため、作業中に期限が切れてしまった場合、APIによる再取得が必要となるので注意。
次回の記事からはNode.jsのコードを触っていこう。