The Amazon S3 options are only available in IProperty > 3.3.1!

Amazon S3 Overview

Figure A: IProperty Amazon S3
Figure A: IProperty Amazon S3

If you choose to host your property images on Amazon S3, users may see faster load times, particularly if you add the Amazon CloudFront edge image delivery service to your S3 bucket.

  • Step 1: Sign up for an Amazon AWS account
  • Step 2: Create an S3 “Bucket” to hold your images. It’s best to give the bucket a name that is related to your business or your site, since the bucket name will be prepended to the image path and may have a minor effect on your SEO.
  • Step 3: In your S3 Bucket properties, click the “CORS Configuration” button and create a CORS document like this:
<CORSConfiguration>
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedHeader>*</AllowedHeader>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
    </CORSRule>
</CORSConfiguration>
  • Step 4: Using the Amazon IAM (Identity and Access Management) panel, create a new identity with minimal access rights. There’s many best practices with respect to IAM, so please do some research and learn about how to safely restrict a user!
  • Step 5: Copy the IAM User’s Access Key and Secret– Amazon will only show these to you once, and you’ll have to regenerate them if you lose them, so keep them safe.
  • Step 6: In your S3 bucket properties, click the “Edit Bucket Policy” button, and add a new policy. It should look like this (substitute in your own bucket name and account ID):
{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "",
			"Effect": "Allow",
			"Principal": {
				"AWS": [
					"arn:aws:iam::[AWS ACCOUNT ID]:root",
					"arn:aws:iam::[AWS ACCOUNT ID]:user/[IAM USER NAME]"
				]
			},
			"Action": "s3:*",
			"Resource": [
				"arn:aws:s3:::[S3 BUCKET NAME]",
				"arn:aws:s3:::[S3 BUCKET NAME]/*"
			]
		}
	]
}
  • Step 7: Using a text editor, create an XML file with the following content:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="*" secure="false" />
</cross-domain-policy>

Use the S3 Bucket tool in the S3 console to upload this file to your Bucket. Note that you can choose to restrict the bucket to ONLY your site by providing the site URL in place of the * in the allow-access-from-domain node of the XML file.

  • Step 8: In the IP Administrator / Gallery tab, set Use S3 to Yes, and supply the Bucket Name, Access Key and Secret you created earlier.

That’s it– now your images should be uploaded directly to your Amazon S3 bucket, and your images will be served by S3 / CloudFront rather than your host.

Tags: iproperty