BIM 360 Docs チュートリアルでは、ファイルをアップロード、または、ダウンロードする際の bucketKey(Buccket 名)が常に wip.dm.prod とされています。実際には、常に wip.dm.prod であるとは限りません。 したがって、アプリケーション実装時には、この名前が決して変化しないとは想定してハードコードすることは避けてください。 それでは、ファイル ダウンロード チュートリアルの Step 4: Find the Storage Object ID for the file を再度確認してみると、返されたペイロードで、次の内容の JSON レスポンスが返されていることがわかります。
...
"storage": {
"data": {
"type": "objects",
"id": "urn:adsk.objects:os.object:wip.dm.prod/72d5e7e4-89a7-4cb9-9da0-2e2bbc61ca8e.dwg"
},
...
}
...
store.data.id から bucketKey と objectKey を抽出して、GET buckets/:bucketKey/objects/:objectName endpoint を継続処理が出来るようにしている点にご着目ください。 両キーの抽出には様々な手法を使用できますが、正規表現でこれを簡単に行うことができます。 ^urn:adsk\.objects:os\.object:([-_.a-z0-9]{3,128})\/(.+)$ を使用して、両方のキーを抽出し、それらの値を検証することが出来ます。
ファイルのアップロード時(ファイル アップロード チュートリアルの Step 5: Create a Storage Object を参照)も同様です。PUT buckets/:bucketKey/objects/:objectName、または、PUT buckets/:bucketKey/objects/:objectName/resumable endpoint で同じ手法を使用する必要があります。
...
"data": {
"type": "objects",
"id": "urn:adsk.objects:os.object:wip.dm.prod/2a6d61f2-49df-4d7b.jpg",
...
By Toshiaki Isezaki
コメント