Using Amazon S3 Copy with DevPay
The Amazon Simple Storage Service lets you copy an object. For more information about the Amazon S3 copy feature, go to the section about copying objects in the Amazon Simple Storage Service Developer Guide.
To understand how DevPay products can use the copy feature, think of the copy operation as two steps: the DevPay product reads the object from the source bucket and then writes the object to the destination bucket. Amazon S3 requires your product to use the same Secret Access Key and Access Key ID for both steps. Therefore, the DevPay product must have access to the required credentials for the owner of the source bucket and the owner of the destination bucket.
AWS also has rules about data access with DevPay products (for more information, see Customer Access Stored Data). These rules affect how your DevPay product can use the copy feature.
Taking into account the preceding requirements, your product can:
Copy an object to the same bucket
Copy an object to another bucket that your product has created and is owned by the same customer
Copy an object to another bucket that your product has created and is owned by a different customer
This works only if your product created both the source and destination buckets (i.e., both customers used your product to create their buckets) and the required Amazon S3 access control is enabled. For example, Bob can copy an object from Alice's bucket to his own bucket if he and Alice are both using your DevPay product and Alice has given him permission to read her object using the Amazon S3 access control lists. Likewise, Alice can copy her object to Bob's bucket if Bob has given Alice write permission for his bucket.
By contrast, your product cannot:
Copy an object to a bucket created by another DevPay product, even if you own both products and the same customer owns both buckets
Copy an object between a bucket created by a DevPay product and a bucket not created by a DevPay product
The customer who sends the PUT request for the copy is charged your product's price for the copy request. The customer who owns the bucket where the copy is stored is charged your product's price for the copy storage. AWS doesn't charge for bandwidth related to copying, so you are charged only for the normal Amazon S3 PUT request and storage charges whenever your customers copy objects.