Freeze FAQ

About Freeze

Freeze is a file transfer client for Amazon Glacier designed for macOS. Freeze uses the Amazon S3 Glacier API.

Amazon Glacier is an extremely low-cost storage service for infrequently accessed data, which makes it perfect to store data archives or backups. For Amazon Glacier specific questions, please refer to the official Amazon Glacier FAQ. For pricing information, please refer to the official Amazon Glacier Pricing web site.
You need macOS and an Amazon AWS account. If you don't have a Amazon AWS account yet, sign up for Amazon AWS on the Amazon Glacier Website. Supported macOS versions are:
  • macOS Ventura (13.0),
  • macOS Monterey (12.0),
  • macOS Big Sur (11.0),
  • macOS Catalina (10.15),
Intel as well as Apple Silicon Macs are supported.

You can download a Free Trial version here. If you prefer, you can install via homebrew cask: brew install --cask freeze

Freeze is available for purchase on the Mac App Store and also here on this web site.

Feature-wise, both releases are identical, only the distribution-process and prices are different. The main differences are:

  • The web-release is cheaper than the App Store release.
  • You can test the web-release for free for as long as you want and then purchase it when you like it.
  • The App Store release is updated automatically. The web-release notifies you about updates that you have to download and install manually (no automatic updates due to sandbox restrictions).
  • Updates for the App Store release are generally available a few days later than the web-release, due to Apple's review process.

No, Freeze uses the Glacier API exclusively and does not support Amazon S3. Objects archived to Glacier via the S3 API are not accessible through the Glacier API.

Quoting from the official Amazon S3 FAQ:

Q: Can I use Amazon Glacier APIs to access objects that I’ve archived to Amazon Glacier?

Because Amazon S3 maintains the mapping between your user-defined object name and Amazon Glacier’s system-defined identifier, Amazon S3 objects that are stored using the Amazon Glacier option are only accessible through the Amazon S3 APIs or the Amazon S3 Management Console.

Glacier Deep Archive is a feature of the Amazon S3 API and not the Glacier API as of this time. Since Freeze uses the Glacier API it is currently not possible to add support for it. If Amazon will add this storage class to the Glacier API at some point in the future, Freeze will support it.

Use Cases

  • You have a collection of archives on your external HDD and you want to store these archives additionally on Glacier for disaster recovery in case your external HDD fails.
  • You already have data stored on Glacier and you want to see a list of all archives stored there.
  • Your external HDD failed and now you want to retrieve these archives from Glacier.
  • You are a power user who creates his own compressed and encrypted backup archives and you are looking for a way to transfer these archives to Glacier. You want to have the flexibility to forget about Freeze and use a completely different Glacier client in the future to access these archives.

Freeze is not meant to be a backup solution. Instead, Freeze offers similar features that you would expect from a FTP client that you would use to access FTP servers (to clarify: Freeze does not support FTP).

A backup solution and a file transfer client are two different types of software.

Here are some use cases for a backup solution (which Freeze is not):

  • You want to backup everything on your computer to the cloud and be able to restore from that backup when something goes wrong.
  • You want to have a tool that runs in the background and backs up automatically.
  • You want your archives to be encrypted and compressed automatically and you are fine to stick with a proprietary backup solution which creates backups that cannot be easily restored with other software.

At this time there are no plans to support other services or protocols. The idea of Freeze is to provide a simple native interface for Glacier on the Mac.
Freeze is not designed to upload Time Machine backups to Glacier. Instead, you should look for a solution that is specifically designed for that kind of job.

The iPhoto Library and other macOS Packages (for example application bundles) should only be stored on HFS+ file systems. These packages usually contains symbolic links that cannot be stored on Glacier.

Instead, you could create a DMG image, copy the package to that image and then upload the DMG image file to Glacier.

You can upload any kind of data you want to Glacier, but I highly recommend that you compress your data into individual archives before doing that.

When you compare Glacier to a file system, Glacier has some limitations:

  • Glacier has a flat hierarchy.
  • Glacier archives do not have meta data like permissions or timestamps associated to them (except for CreationDate).
  • The total size of a Glacier archive is constrained and depends on the upload part size.
  • Glacier archives cannot be empty.
  • You cannot upload special files like symlinks to Glacier.
  • Glacier archives cannot be renamed or moved to a different vault.

You should also keep in mind that Glacier is designed for use cases where data is retained for months, years, or decades. Amazon will charge you an early deletion fee if you delete an archive within three months of being uploaded.

Be aware of these limitations when you upload files to Glacier. I recommend that you create archives of your files before you upload them to Glacier. The easiest would be ZIP archives or DMG images which macOS supports natively. For more advanced users I recommend DAR archives encrypted with GnuPG for example.

Freeze cannot create archives or backups. Freeze is meant to be a simple file transfer client to upload/download to and from Glacier. If you want to store archives or backups on Glacier, you have to use other tools to create those. I recommend to keep it simple and choose a archive format that is widely used and standard (e.g. ZIP, TAR).

Connecting to Glacier

To connect to Amazon Glacier, you need your account credentials for your Amazon AWS account, i.e. Access Key and Secret Key. You can either use your root account credentials or IAM user credentials to connect to Amazon Glacier. An IAM user who should have access to all regions requires at least the privileges AmazonGlacierFullAccess for full access AmazonGlacierReadOnlyAccess for read only access.

IAM users restricted to certain AWS regions are also supported. Just make sure that you only select the regions the user has access to within the account preferences.

Yes, Freeze uses HTTPS (TLS) to connect to Amazon Glacier endpoints. Insecure HTTP connections are discouraged and therefore not supported.

Freeze supports all standard AWS regions as well as additional isolated regions.

Please contact support if you need support for other isolated regions.

Inventory

When you upload a file in Freeze, the name of the uploaded file is used as Archive Description. Since Glacier's Archive Descriptions may only contain ASCII characters (values 32-126), they may not represent all characters that are normally allowed in file names of most file systems. Therefore, Freeze takes the UTF-8 representation of the file name and Percent-Encodes all characters that are not allowed.

For example, the archive description for file name `Hüte.jpg` would be encoded as `H%C3%BCte.jpg`.

Freeze tries to decode Archive Descriptions automatically. Archive description by the following clients are supported:

  • FastGlacier
  • CrossFTP
  • CloudBerry
  • Synology (after importing mapping DB file)

If you know about other Glacier clients which use a special archive description format, please let us know about!

Glacier has a flat structure with no hierarchy like you would see in a typical file system. For the sake of organizational simplicity, Freeze supports the concept of files and folders. You can enable and disable folder view within the app by selecting "Inventory -> Folder View".

For example, if you have an archive with an archive description like "test/doge.jpg", "test" is the folder of the file "doge.jpg".

Empty folders are represented by dummy archives with the archive description ending with a forward slash, e.g. "test/".

This type of folder representation is a common concept also used by other Amazon Glacier and S3 clients.

Glacier generates the inventory for non-empty vaults once a day. After your first upload to a vault you'll have to wait until the inventory has been generated by Glacier before you can initiate an inventory retrieval.

Reload the list of Vaults (Vault -> Reload Vaults) one day after your first upload. Then you should be able to initiate inventory retrieval.

The Glacier Backup Feature of Synology NAS stores archives with empty descriptions. The original filenames are stored in a separate database, which is usually backed up in a separate Vault with the suffix "_mapping". To restore data backed up with Synology NAS, follow these steps:
  • Do an inventory retrieval of your vaults.
  • Retrieve the mapping database file of your Synology NAS from the "_mapping" vault.
  • Right click on the vault that contains the inventory with the empty archive descriptions, go to "Import mapping file..." and select the mapping database file.
  • After the import, the archive descriptions should contain the original path/filename.

Uploading Archives

tl;dr: Upload large archives (> 100 MB) instead of small individual files.

The size of your archives can have a significant impact on the retrieval speed and on the pricing (especially retrieval fees) since Glacier charges per-request fees for most operations.

Uploading a few large archives is much more efficient then smaller archives. For example: If you want to back up your photo collection, it's much more cost efficient to upload a large ZIP file of all your photos than each individual photo. In addition, the retrieval process will be much faster. The downside is, that you cannot restore individual files if you upload a big archive. A compromise could be to choose a archive file format that supports volumes and split the archive into chunks (of, for example, 100 MB each) and keep a separate index of those archives.

Freeze's default transfer settings are optimized for fast uploads with higher bandwidth internet connections. If you see timeout errors during uploads please do the following:

  • Be sure you use the latest version of the app.
  • In Preferences -> Settings, set "Max. simultaneous uploads" to 1 and deactivate the upload speed limit.
  • In Preferences -> Advanced, set "Upload part size" to "1 MB".
Please note that changing "Upload part size" does not affect existing uploads.

If you're still experiencing problems, please contact support.

  • Be sure that you use a Amazon AWS Region that is geographically near your.
  • In Preferences -> Advanced, bump the "Upload part size" to a higher value. This value should be higher than your internet connections's max. MB/s.

If you still experience slow uploads, please contact Amazon AWS support. They are usually very helpful when it comes to network issues.

The maximum archive size depends on the upload part size. Here is an overview of the constraints of the maximum archive size for each upload size:

Partsize in MiB Max. archive size in MiB Max. archive size in GiB
1 10,000 9.76
2 20,000 19.53
4 40,000 39.06
8 80,000 78.12
16 160,000 156.25
32 320,000 312.50
64 640,000 625.00
128 1,280,000 1,250.00
256 2,560,000 2,500.00
512 5,120,000 5,000.00
1024 10,240,000 10,000.00
2048 20,480,000 20,000.00
4096 40,960,000 40,000.00

The upload part size in configurable in Freeze's advanced preferences.

Retrieving Archives

Freeze does not support range retrievals at this time. If you initiate retrieval for an archive, Freeze will retrieve the whole byte-range for that archive at once.

You can specify a per-region "Data Retrieval Policy" within the AWS Console. Please read the Amazon Glacier Documentation for more information. As long as you choose "Free Tier", you won't be charged for retrievals. This is also the default for new AWS accounts. For older AWS accounts you may have to set this manually.

You can also change the retrieval policy within Freeze:

  • Select a region from the popup button above the list of vaults
  • If vaults are selected, deselect them
  • Below the list of vaults you'll see "Region information" in the Info-Box
  • Select the region and right click on "Retrieval Policy"
  • Select the desired Retrieval Policy

Deleting Archives/Vaults

First you need to initiate an inventory retrieval for the vaults you want to delete archives from. This takes about 4 hours to complete. After that, you'll be able to browse the vault's contents and delete individual archives.

Before you can delete a vault, you must first delete all archives from that vault. The steps to delete a vault are:

  • Initiate inventory retrieval for the vault
  • Wait 4 hours for the retrieval job to complete
  • Within the inventory browser, select all archives and choose "Delete"
  • Wait for the Deletion job to complete
  • Wait 12h for Glacier to update it's inventory
  • Right-click on the vault and choose "Delete"
If you get the error message "Vault not empty or recently written to" although you deleted every archive from that vault, you'll have to wait a bit longer for Amazon to update it's internal inventory.


Got any other questions? Please contact support, we're happy to help!