Overview
From version 3.6, Artifactory fully supports S3 object storage for distributed file systems so your Artifactory filestore can reside on the cloud. This present several benefits:
- Unlimited scalability
Since your files are now stored on the cloud, this means that your Artifactory filestore is scalable and effectively unlimited (to the extent offered by your storage provider). You may freely continue to upload files without having to install or maintain any file storage devices. - Security
Enjoy the same security and authentication mechanisms provided by your S3 provider. - Disaster recovery
Since your files are replicated and stored with redundancy, this offers the capability for disaster recovery. - Support any S3 compatible distributed file system
Arifactory's support is based on the S3 protocol. Any provider that uses S3, such as Ceph, Swift and others, will also be supported by Artifactory.
Support for S3 object storage is included with Artifactory Pro Enterprise Value Pack.
In order to use S3 object storage with Artifactory, make sure you first install or upgrade to Artifactory V3.6 or later.
Backup your system. Your current filestore will be deleted.
Setting up Artifactory to use S3 will delete all files in your current filestore.
If you already have a running installation of Artifactory, then before you setup Artifactory to use S3 and migrate your filestore to the cloud, we strongly recommend that you do a complete system backup.
Setting up Artifactory to Use S3
First time installation or upgrade
If you are moving your filestore to S3 in the context of upgrading Artifactory, or a first time installation, we recommend that you first do a standard installation of Artifactory using the default settings, or a standard upgrade using your current settings.
In order to move your Artifactory filestore to the cloud, you need to execute the following steps:
- Shut down Artifactory.
- Set your enterprise license
- Configure Artifactory to use your S3 object storage provider
- Migrate your files to the cloud manually or automatically
- Start up Artifactory
Setting Your License
To use Artifactory's support for S3, you need to have an enterprise license with your Artifactory installation.
To do so, make sure your $ARTIFACTORY_HOME/etc/artifactory.lic
file contains your enterprise license.
Configuring Artifactory to Use S3
To configure Artifactory to use your S3 object storage provider, you need to add or modify the following parameters to your $ARTIFACTORY_HOME/etc/storage.properties
file:
Parameter | Description |
---|---|
binary.provider.type | This must be set to S3. Were you using fulldb? If you were storing your binaries as blobs in the database (i.e. this was set to fulldb), make sure you remove all parameters connected to using fulldb. |
binary.provider.s3.identity | Your username or IAM user key for your S3 provider. |
binary.provider.s3.credential | Your password or IAM secret for your S3 provider. |
binary.provider.s3.endpoint | The URL of your provider's endpoint for access. Connect to the nearest endpoint If your S3 provider supports connections to different endpoints, we recommend connecting to the geographically nearest endpoint for best performance. For example, if you are using AWS-S3, you should configure your endpoint according to the regions specified in the AWS documentation. |
binary.provider.s3.bucket.name | (Optional) The name of the bucket at your S3 provider Default: artifactory |
binary.provider.s3.bucket.path | (Optional) Path within your bucket Default: filestore |
Keep your database settings
Make sure you don't change your database settings in your storage.properties
file.
For example, a storage.properties
file that uses an S3 object storage provider should look like this:
## Database settings - these should not be modified when migrating your filestore to S3 type=derby url=jdbc:derby:{db.home};create=true driver=org.apache.derby.jdbc.EmbeddedDriver ## Specify object storage provider binary.provider.type=S3 ## S3 identity binary.provider.s3.identity=<Your S3 provider username> ## S3 credential binary.provider.s3.credential=<Your S3 provider password> ## S3 endpoint - in this example, this is the endpoint for AWS binary.provider.s3.endpoint= http://s3.amazonaws.com
Migrating Your Filestore
If you have an existing installation of Artifactory, you need to migrate your filestore over to your S3 provider.
There are two ways do this:
- Automatically (recommended)
- Manually
Automatic Filestore Migration (Recommended)
To make sure your filestore migration completes successfully without corrupting files, we recommend configuring Artifactory to do this migration for you automatically. To do so, you need to create a link with the name _add
in $ARTIFACTORY_HOME/data/eventual
that points to the $ARTIFACTORY_HOME/data/filstore
directory.
With this setting, as soon as Artifactory starts up, it will automatically move your complete filestore over to your S3 provider.
Your current filestore will be deleted
The process of moving your filestore to your S3 provider will delete your current filestore. We strongly recommend you do a complete system backup before doing this migration.
Manual Filestore Migration
To migrate your filestore manually, you need to execute the following steps:
- Stop Artifactory
- Copy the
$ARTIFACTORY_HOME/data/filestore
directory to your S3 object storage to the bucket name and path specified when you configured Artifactory to use S3 (the default values areartifactory
andfilestore
). - Start Artifactory