2016年12月19日月曜日

バケットにファイルをアップロードする

ファイルのアップロード

引き続き、チュートリアルの後半を実行してみます。

Step 2: Upload a file to a storage location

ファイルのアップロードに必要なHTTPリクエストの項目をこちらで確認します。
Resource Information

Method and URI

  • メソッドは「PUT」
  • URIは

    https://developer.api.autodesk.com/oss/v2/buckets/:bucketKey/objects/:objectName
    となっています。:bucketKeyには取得したバケットの名前(:は必要ありません)を、:ObjectNameにはアップロードするファイルにつける任意の名前をつけます。名前は本当のファイル名でもいいし、GUIDのような名前でも構いませんが、拡張子は変更しないでください。

Required OAuth Scopes

  • data:write または data:create で取得したアクセストークン。data:write の場合は、既存のファイルを上書きすることができます。

Data Format

  • データフォーマットはJSON形式

まずは例によって、アクセストークンを取得します。スコープはdata:writeです。DHCを起動し、以下のように設定して、Sendで応答を待ちます。
DHCでアクセストークンを取得する
すると、応答が返ってきます。
アクセストークンを取得した!

ファイルをアップロード

いよいよファイルをアップロードします。ファイルは任意のRevitのファイル(標準添付のサンプルプロジェクトなどを利用してください。)を使用します。

ヘッダーの必要事項はこちらで確認します。
ヘッダーには何が必要か?
たくさん項目がありますが、必ず必要なのはAuthorizationとContent-Lengthだけです。

Authorization


  • Bearer アクセストークン (Bearer+半角スペース+アクセストークン)

Content-Length


  • DHCも含めて、ほとんどのクライアントはファイルを指定すれば、この項目は自動的に設定されます。

DHCの設定は下の図のようになります。
DHC
① BODYはファイルなので「file」を選ぶ
② Revitのファイルを選択します。
③ Bearer アクセストークン
④ developer.api.autodesk.com/oss/v2/buckets/blacksmithbucket1203/objects/sampleproject01.rvt
バケット名とオブジェクトの名前(②のファイル名と一致しなくてもいいが、拡張子は同じにします。)

ファイルのアップロードの設定は、なにか拍子抜けするほど簡単ですねぇ。ほんとにこれでいいんでしょうか?とりあえず[Send]を押してみます。

しばらくすると・・・・・

おお!ちゃんんとアップロードできたじゃないですか!応答の内容をチェックしてみましょう。
アップロード成功!
{
"bucketKey": "blacksmithbucket1203",
"objectId": "urn:adsk.objects:os.object:blacksmithbucket1203/sampleproject01.rvt",
"objectKey": "sampleproject01.rvt",
"sha1": "55d89511380aeaa070be7072ed7a57d89172e5f3",
"size": 17215488,
"contentType": "application/octet-stream",
}

bucketkey

バケットの名前。アップロード時に指定したものと同じ名前が返されます。

objectId

これがアップロードしたファイルのバケット内でのURN(ID)になります。以降、この名前でファイルをs操作します。

ObjectKey

アップロードしたファイルの名前。ファイルはアップロード後は「オブジェクト」と呼ばれます。

うまくアップロードできました。今度はこのファイルをビューア用に「変換」します。作成したバケットはtransient、急がなければ。なぜなら作成したバケットはtransient、つまり24時間しかデータを保持してくれないのだから・・・・



0 件のコメント:

コメントを投稿