Internet Explorer is no longer supported. Many things will still work, but your experience will be degraded and some things won't function. Please use a modern browser such as Edge, Chrome, or Firefox.

HOWTO: Configure Feeds for Amazon S3

view on GitHub

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.

Step 1: Login or Create an Amazon AWS Account.

Sign up or login your Amazon AWS account.

Log into Amazon AWS

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.

Amazon S3 Buckets Tab

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.

Amazon S3 Bucket Info

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.

AWS Access key

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.

Amazon S3 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.

Create New Feed in ProGet

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.

Create NuGet Feed

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.

Change Storage Location

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:

AWS S3 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.

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:

  1. Please click on the gear icon in the banner
  2. Navigate to Integrations & Extensibility > Extensions
  3. Click on the Amazon extension under Available Extensions
  4. 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 be us-east-2)
  • Verify Bucket is set to the same name as your S3 bucket (In our example, we named our Bucket kramerica)