Как предоставить нескольким пользователям доступ к одной учетной записи Amazon S3 И определить, кто добавил файл?

У меня есть учетная запись AWS S3, которая содержит 3 корзины. Мне нужно иметь возможность генерировать коды доступа для нового пользователя, чтобы он мог получить доступ к корзинам и добавлять/удалять файлы (желательно только свои собственные, но не нарушающие условия сделки).

Мне удалось получить доступ к новым пользователям с помощью IAM. Однако, когда я читаю метаданные загруженных объектов (в PHP с использованием AWS SDK), владелец возвращается как основная учетная запись AWS.

Я прочитал страницы документации, но не могу найти ничего, что касалось бы определения того, кто был владельцем (или загрузчиком) файла.

Любые советы или направления очень ценятся!

Спасибо.


person HelloPablo    schedule 08.03.2012    source источник


Ответы (1)


Если ваша единственная проблема — найти владельца загруженного файла.

Вы можете передать информацию о владельце в качестве метаданных загруженного файла. Проверьте http://docs.amazonwebservices.com/AmazonS3/latest/dev/UsingMetadata.html

В php-коде при загрузке:

// Instantiate the class.
$s3 = new AmazonS3();

$response = $s3->create_object(
$bucket,
$keyname2,
array(
   'fileUpload'  => $filePath,
   'acl'         => AmazonS3::ACL_PUBLIC,
   'contentType' => 'text/plain',
   'storage'     => AmazonS3::STORAGE_REDUCED,
   'headers'     => array( // raw headers
                      'Cache-Control'    => 'max-age',
                      'Content-Encoding' => 'gzip',
                      'Content-Language' => 'en-US',
                      'Expires'       => 'Thu, 01 Dec 1994 16:00:00 GMT',
      ),
     'meta'     => array(
                     'uploadedBy' => 'user1',
     ) )
);
print_r($response);

Проверьте php API для получения дополнительной информации.

person shashankaholic    schedule 24.03.2012
comment
Спасибо, я должен был быть более конкретным в отношении того, как контент добавляется в корзину. Различные пользователи будут добавлять файлы/объекты в корзину с помощью Panic Transmit4, а не с помощью пользовательского загрузчика. - person HelloPablo; 26.03.2012