「匿名ユーザー」とは、「認証されていないユーザー」を意味しますか? その場合、2 つのオプションがあります (以下の #1 と #2)。そうでない場合は、選択肢が 1 つあります (以下の #1)。もちろん、これはすべて、アップローダー自身にこれらのオブジェクトの ACL を変更するよう説得できないことを前提としています。
オブジェクトを削除します。バケットの所有者は、いつでもオブジェクトを削除できます (そして、それらに対する支払いを停止できます)。
オブジェクト所有者になり、バケット所有者 (あなた) にフル コントロールを付与します。誰でも認証されていないユーザーになることができるため、オブジェクトの所有者になります。
node.js と AWS JavaScript SDK を使用して bkt/cat.jpg に対して #2 を実行する方法の例を次に示します。このコードは、認証されていないユーザーとして putObjectAcl を呼び出し、バケット所有者 (あなた) にオブジェクトを完全に制御できるようにします。
var aws = require('aws-sdk');
var s3 = new aws.S3();
var p = { Bucket: 'bkt', Key: 'cat.jpg', ACL: 'bucket-owner-full-control' };
s3.makeUnauthenticatedRequest('putObjectAcl', p, function(e,d) {
if (e) console.log('err: ' + e);
if (d) console.log('data: ' + d);
});
残念ながら、awscli は認証されていない S3 呼び出しをサポートしていないようです。それ以外の場合は、それを使用してオブジェクトの ACL を変更することを提案します。
既定のACLである bucket-owner-full-control により、オブジェクトの所有者とバケットの所有者の両方に完全な制御が与えられることに注意してください。