The new version of FileMaker 12 has greatly enhanced container field abilities in the FileMaker product lines. From images, pdfs, movies, to any file you want to store, all the files can now be easily stored in a directory outside of the database file, known as external storage. The focus of this article will primarily be on the new storage options and how they can be configured in the FileMaker 12 interface along with how the files are referenced on FileMaker Server 12. Let’s unravel all the new container / file management options available.
Managing File / Container Locations
A new menu is now available, File > Manage > Containers, which pops open the window below, labeled Manage Containers. In Manage Containers, you have two options: 1) Storage Options, and 2) Thumbnail Options.
Under Storage, you can list locations where you wish to externally store files. You have four directory paths you can specify:
- Relative Path using a sub-folder of the database location
- Full Path using the Volume
- Full Path using the Drive Letter such as a mapped drive
- Network Path (e.g. computerNameshareNamedirectoryName)
When using a Relative Path, you must specify one or more subfolder names, I like to use the folder name files.
Also, the New, Edit, and Delete buttons are disabled when the database is hosted on FileMaker Server. Thus, you can only edit the directories in Manage Containers when a file is in single user mode.
You can now optimize the performance of streaming thumbnails over the network.
The thumbnails are automatically generated and you have the option to store the thumbnails permanently, which uses both hard disk and RAM, or Temporary storage, which only uses RAM. Temporary storage is cleared when you close the database.
Transfer Data Button
In the Manage Containers window you will see a Transfer Data button in the lower left. The Transfer Data button allows you to migrate your container data to your specified external directory. The Transfer Data button is greyed out above, but will become active once changes have been made at the field level to container fields that have not been transferred to their new location.
The Transfer Data button is like a Synchronize button. When you set up your database to use external storage for the first time, you will need to move your container data. Or, if you have made changes to your container fields’ external location, this is your button to Sync.
The Transfer Data Button Functionality:
- Requires Full Access to transfer data.
- Allows data in container data to be transferred externally
- Allows data externally stored to be transferred back into the container
- Supports converting to Secure Storage and back to Open Storage
- Allows moving data between base directories
- Allows moving data when open storage calculation is changed
- Does not transfer files that are stored by reference
Basically, when you change a container field option you will need to Transfer the data to the new location and the button handles just about everything for you. Once completed, you will receive a Transfer Summary dialog and a Transfer.log file will be generated for you to review.
Container Field Options
At the container field level under Storage, a new option for Containers is now available. You can select to store the data externally, select where you wish to store the data based on the paths you have made available under Manage Containers, and select the type of storage. You have two types of container options available: 1) Secure storage, and; 2) Open Storage.
Secure storage container data is encrypted on the external path specified and can only be unencrypted by FileMaker Pro. When testing, five randomly named subfolders are created and a random file name is created, encrypted, and placed in the last folder. If you’re storing data that is sensitive, then Secure storage is the only way to store your data moving forward in FileMaker.
The Open storage option stores the file just as it was when you saved the file. To better organize your data, you are given additional options to define subfolders for each container field. You also have the calculation engine to your disposal to dynamically name subfolders for your container field data.
Container Data Transfer
When changing any of the container field level options, you will receive a prompt to transfer your container field data to the new location. Changing the folder or changing the type of storage will generate this prompt to transfer your container data. You can click cancel and later go to Manage Containers and click on the Transfer Data button as previous discussed.
Duplicate File Names
If you insert two files of the same name, the previously stored file will be overwritten. This is where utilizing container field options to automatically generate a unique subfolder using the primary key or UID will prevent files with the same name from being overwritten. Make sure to test saving files with the same file in different records and ensure the files are not overwritten.
Insert File Dialog Options
The new Insert File Dialog Options script step is loaded with 4 new features:
- Filter file types
- Storage Options
- Display Settings
All of these options are awesome and straight-forward so I will not go into much depth here, but the one that surprised me the most to see was compression.
Compression is only allowed if you have set Display Icon with filename. In addition, some file formats cannot be compressed further. The dialog mentions JPEG, MP3, but I have not seen a full list of file types omitted as some video may not be compressed further as well. The overarching point, though, is if you want to have things compressed and decompressed, you now have the option available.
FileMaker Server Default Storage Locations
The path of least resistance will be to set up external storage on FileMaker Server using a relative path sub folder in Manage Containers. When you have your database hosted on FileMaker Server and use the relative path folder option, the data is stored in a subfolder of the actual database location. The FileMaker Server then stores your container data natively in the following subfolders from the location of the database:
Your Database File.fmp12 -> RC_Data_FMS -> Your Database File Name -> Manage Container Sub Folder(s) -> Field Level, Open Storage Sub Folder(s) or Secure Storage Sub Folders.
If a field is selected to use Secure storage, then a subfolder ‚ÄúSecure‚Äù is created and sub folders are auto generated when the data is stored.
Other folders may appear including RC_Cache_FMS and RC_StreamingCache_FMS.
Note: You cannot store files outside the FileMaker Server folder such as an external drive. You will need to use a third party product such as 360Works Supercontainer.
When backing up your FileMaker databases using FileMaker Server, any relative path container data will be included in the backup. This could lead to longer backup times if you are storing lots of files or large amounts of data. FileMaker 12 now has a new feature in FileMaker Server called Progressive Backups, which are essentially incremental backups. The first time you Enable Progressive backups, a full backup will occur so beware if you have large amounts of data. Progressive backups are ideal for those who have large FileMaker databases and for those who store lots of files in FileMaker via containers.
Overall, FileMaker 12 is loaded with tons of new container features. Previously, you had to use third party plugins for these functions, but with the new container features, we can all now embrace natively the features in FileMaker Pro, Server, and Go. Abilities such as external data storage, encrypting data via Secure Storage, controlling file type filtering via the Insert File dialog, and Progressive Backups that allow lightning-fast backups are just some of the awesome new features!
Finally, the ability to change a container field’s external storage location and have the data automatically transfer is a huge time-saver for setting up external storage and managing your container data. We really think you will like the new external storage options, the flexibility now available natively, and the enjoyable user experience of containers in FileMaker 12 and beyond.