Сделать папки, созданные в корзине aws3, общедоступными или частными в Amazon S3

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


person Ayisha mehrin    schedule 11.07.2018    source источник


Ответы (1)


Я предполагаю, что вы пытаетесь использовать консоль AWS. В таком случае просто щелкните правой кнопкой мыши папку, которую вы хотите сделать общедоступной. При щелчке правой кнопкой мыши должна быть одна опция «сделать общедоступной», которая должна сделать ее общедоступной.

Программно с Java: В случае, если для создания папки (это ключ в техническом термине S3) вам нужно использовать "Canned ACL.

Следовательно, ваш код должен выглядеть следующим образом: s3client.putObject(...).withCannedAcl(CannedAccessControlList.PublicRead)

см. ссылку https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl

Как вы упомянули в комментарии, каждый должен иметь доступ для чтения к общедоступной папке, в таком случае у вас должна быть одна политика уровня корзины, которая предоставляет доступ к «общедоступной» именованной папке всем.

Пример политики: Пример:

    {
    "Version":"2012-10-17",
    "Statement": [
        {
            "Effect":"Allow",
            "Principal": "*",
            "Action":["s3:GetObject"],
            "Resource":["arn:aws:s3:::test-b11/public/*"]
        }
    ]
} 

где имя ведра — «test-b11», а общая папка — «общедоступная».

В консоли щелкните корзину, перейдите на вкладку «Разрешения» и нажмите «Политика корзины», куда вам нужно загрузить политику.

person Tejaskumar    schedule 11.07.2018
comment
даже если я сделаю папку общедоступной, я не смогу получить доступ к файлам, загруженным в папку публично. Я должен сделать отдельные файлы в этой папке общедоступными. Что мне делать? - person Ayisha mehrin; 11.07.2018
comment
пожалуйста, обратитесь к отредактированному ответу, который решает вашу проблему, применяя политику ведра - person Tejaskumar; 11.07.2018
comment
thnq Tejas. Не могли бы вы прислать код, чтобы сделать файлы папки приватными. - person Ayisha mehrin; 12.07.2018
comment
По умолчанию объекты являются частными. то есть ожидать в общедоступной папке, определенной политикой корзины, остальные материалы остаются частными. Java-код private void uploadFileTos3bucket(String fileName, File file) { s3client.putObject(new PutObjectRequest(bucketName, fileName, file); // прокомментируйте его .withCannedAcl(CannedAccessControlList.PublicRead)); } - person Tejaskumar; 12.07.2018