Claris FileMakerオブジェクトフィールドの外部保存について復習しよう
2025年04月03日 12:00 PM
ファイルメーカーのTips
Claris FileMakerのオブジェクトフィールドは、写真、ムービー、サウンド、Microsoft Word や Excel、PDF などのドキュメントファイル等を保存するフィールドです。
オブジェクトフィールドでは埋め込みと外部保存の2種類の格納オプションを設定できます。
・埋め込み( Claris FileMakerのファイルに直接保存する方法)、
・外部保存(外部のフォルダに保存する方法)
埋め込みに設定するとレコードの増加に伴いファイル容量が大きくなってしまうため、外部保存に設定するのが一般的です。この外部保存についてフォルダ階層を中心に復習してみましょう。
◆セキュア格納とオープン格納
オブジェクトフィールドのオプション「データの格納」タブで「オブジェクトデータを外部に保存」にチェックするとオブジェクトを外部に保存できます。外部保存では「セキュア格納」と「オープン格納」の2種類を選択できます。(FileMaker Cloudではセキュアのみ)

まずはローカル環境で格納先を確認していきましょう。
1.セキュア格納
オブジェクトファイルが暗号化されて外部のフォルダに保存されます。FileMaker Pro のフィールドからでないと中身を確認できません。基本ディレクトリに「Secure」というサブディレクトリが作成され、サブディレクトリ間でファイルがランダムに分散され、必要に応じて新しいサブディレクトリが作成されます。
基本ディレクトリは以下で設定できます。
ファイル>管理>オブジェクト管理>データの格納タブ

試しに「DEMO」という名前のファイルの「IMAGE」フィールドをオブジェクトの外部保存、セキュア格納で設定し画像を挿入します。

ファイルと同じ階層に「DEMO」というフォルダが作成され「EE79_132」というファイルが作成されました。パスは以下の通りでした。
パス:[カスタムAppの階層]\DEMO\Secure\BA\FA\6191E0BC\BBDF3270\B3FFE7C5\EE79_132
なお、セキュア格納では「より少ないフォルダ」というオプションを選択できます。(バージョン 21.1.1 より)これによりサブディレクトリが減り、バックアップの速度が最適化されます。

前述のフィールドでこのチェックを付けたところ以下のようなパスに格納されました。
チェックしない時に比べ「Secure」以下のフォルダが5階層から2階層に変化しているのがわかります。またファイル名も「EE79_132」→「30F9_132」に変わっています。
パス: [カスタムAppの階層]\DEMO\Secure\3\28CB956DBB26A590FEC2200D0153\30F9_132
2.オープン格納
同じフィールドをオープン格納に変更してみます。

パス:[カスタムAppの階層]\DEMO\DEMO\IMAGE\img7.jpg
上記のようなパスにオブジェクトが保存されました。
初期の設定では
[カスタムAppの階層]\ [ ファイル名 ] \ [ テーブル名 ] \ [ フィールド名 ] \オブジェクトファイル名
のパスに保管されます。セキュア格納と違って暗号化されないので、画像ファイルであれば画像ファイルのままフォルダに格納されます。
ここで次の画像のように基本ディレクトリを変更してみます。

画像は次のパスに保管されました。
\[ カスタムAppの階層 ]\外部で保存\深い階層\DEMO\IMAGE\img7.jpg

基本ディレクトリは、ファイルがフォルダに保存されていなければ変更可能です。
既にファイルがある場合は下図のようなエラーがでます。

さらに各フィールドのフィールドオプションの以下の部分を指定することで、基本ディレクトリ以下のフォルダ構成も変更することができます。

基本ディレクトリ「外部で保存>深い階層」の下に「DEMOテーブル>IMAGEフィールド」のフォルダが作成されオブジェクトが保存されました。

◆サーバーでの格納先
ここまではローカル環境で確認をしてきましたが、サーバー環境ではオブジェクトが格納される場所が変わります。

「RC_Data_FMS」というフォルダが画像のように作成され、それより下の階層は以下のようになります。
RC_Data_FMS¥[データベース名]¥Files¥[データベース名]¥[テーブル名]¥[オブジェクトフィールド名]
※ヘルプでは上記のような記載ですが、今回試した環境では「¥Files」は作成されず、
以下のような階層で保存されました。
RC_Data_FMS¥[データベース名]¥[データベース名]¥[テーブル名]¥[オブジェクトフィールド名]
◆オープン格納で注意すべき点
オープン格納の場合、フォルダに入っているオブジェクトファイルを開いたり、コピーしたりして別の場所に移動することなどはできますが、直接オブジェクトファイルを編集してしまうと「変更されています」の文言が出てアイコン表示になってしまいます。

また同じ名前のオブジェクトファイルを外部のアプリで編集した後、オブジェクトフィールドに上書きで挿入すると外部保存のフォルダ内のファイル名は変更されます。
添付画像の例では「img12.jpg」→「img12_1.jpg」に変更されました。

ただしGetContainerAttribute関数でファイル名を確認すると元の「img12.jpg」のままです。

ファイルメーカーのファイルを通じてオブジェクトファイルを扱うのみの場合は問題なさそうですが、外部保存フォルダ内のファイルを閲覧したり、ファイル名で確認する場合等では注意が必要そうです。
以下のヘルプも参照してください。
Claris FileMakerヘルプ:データを外部に保存するオブジェクトフィールドの設定
Claris FileMakerヘルプ:オブジェクトデータの外部格納の管理
Claris FileMaker Server ヘルプ:オブジェクトデータフォルダの設定
以上いかがでしたでしょうか?外部保存をしっかりマスターしてカスタムAppに活かしていきましょう。