HOWTO: Configure Feeds for Amazon S3
ProGet can use Amazon's S3 Cloud to store your package files instead of using your server's drive. This not only ensures that you never run out of storage space, but also simplifies disaster recovery: everything is already stored in the cloud.
In this article, you will learn how to create an S3 bucket and then use it to store packages in a new feed in ProGet.
This guide will walk you through creating a new feed. If you have an existing feed that you want to migrate to Amazon S3, read our migrating an existing feed docs.
Step 1: Login or Create an Amazon AWS Account.
Sign up or login your Amazon AWS account.
Step 2: Create an S3 Bucket
If you have already set up an S3 Bucket, you can skip this step.
Navigate to the Buckets tab within Amazon S3. If you have trouble finding it, search "Bucket" in the search bar above.
Click on "Create Bucket" and fill in the appropriate fields. When you are done, you should see the name of your bucket, region, and access. In this example, we named our bucket "kramerica" and set the region to US East (Ohio) us-east-2.
Step 3: Create Access Key/ Secret Access Key
After you have set up your bucket, you will need to create an access and secret access key that will be used in ProGet later. Navigate to the Identity and Access Management (IAM) in AWS or simply click here to go straight to your access keys.
Click the blue "Create new access key" button and select the blue arrow that says "View access key" to view your access key and secret access key.
Copy or write down both your access key and your secret access key, as you will need to enter them into ProGet in step 5.
Step 4: Create a New Feed
To create a new feed, navigate to the banner at the top of the page and click Feeds. Then select Create new feed.
Next, you need to select the type of feed you want to set up. In this tutorial we will set up a NuGet feed, but the steps should be nearly identical for each feed. Select the feed you want to set up and fill in the appropriate fields.
Step 5: Change Your Feed’s Package Store Location
By default, ProGet stores package files on disk, so your feed must be configured to store packages on Amazon S3 instead. In your feed, click Manage Feed > Storage & Retention, and then select Change next to Storage.
After clicking Change, you will be prompted to configure your feed package store. Choose Amazon S3 when prompted.
Step 6: Configure Package Store Location to Use Your Amazon S3 Bucket
After you select Amazon S3 as the storage location for your package, you will be presented with the following configuration options:
Since we are setting up a NuGet feed to use an Amazon S3 bucket, we are configuring only the options required for it.
- Access Key & Secret Access Key: Enter the access key and secret access key you created in step 3.
- Region Endpoint: Enter the region endpoint you set up in step 2. In our example, the region endpoint is us-east-2.
- Bucket: Enter the name of the bucket you created. In our example, we named the bucket kramerica.
Thats all you need to configure a new feed to use an Amazon S3 bucket! For details on all of the configuration options, check out our docs on Cloud Package Stores.
If you are having trouble finding something, a quick Google search will usually suffice, but in case you can not find something, here are some references to commonly used terms:
- Access Key: Your access keys can be found here.
- Region Endpoint: Using the navigation pane on the left side of your screen in Amazon S3, go to Buckets > Bucket Overview > AWS Region.
Troubleshooting:
Issue: Amazon S3 is not a storage option
If you have reached step 5 and only notice that there is no option to select Amazon S3, the Amazon AWS extension is probably not installed.
To install the Amazon AWS extension:
- Please click on the gear icon in the banner
- Navigate to Integrations & Extensibility > Extensions
- Click on the Amazon extension under Available Extensions
- Click on the "Install" button
Error: The package could not be installed
If you receive the error message "The package could not be installed." when adding/pushing a package, it usually means that ProGet received an error while connecting to the Amazon S3 bucket. Please check the following:
- Verify the Access Key and Secret Access Key are properly set from the Identity and Access Management (IAM) console
- Verify the Region Endpoint is correct. (Ex: if your bucket says
US East (Ohio) us-east-2
, the value should beus-east-2
) - Verify Bucket is set to the same name as your S3 bucket (In our example, we named our Bucket
kramerica
)