Есть ли способ скрыть индексную страницу со списком файлов корзины MinIO?

Я установил права доступа к корзине MinIO на загрузку, чтобы файлы могли читать (но не записывать) все, но это включило индексную страницу, на которой отображается содержимое всей корзины. Например, рассмотрим корзину store/test, содержащую файл example.png. Я хотел бы, чтобы example.png был доступен для чтения во всемирной паутине, поэтому я установил права доступа для store/test на загрузку, что означает, что https://store.example.com/test/example.png теперь доступен для чтения всем, но это также означает, что https://store.example.com/test теперь показывает список всех файлов в корзине:

<!-- Pretty printed result of $ curl https://store.example.com/test -->
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>test</Name>
  <Prefix/>
  <Marker/>
  <MaxKeys>4500</MaxKeys>
  <Delimiter/>
  <IsTruncated>false</IsTruncated>
  <Contents>
    <Key>example.png</Key>
    <LastModified>2021-02-05T08:13:06.683Z</LastModified>
    <ETag>"7c8b827ef97e929258e9728cb96059cf-33"</ETag>
    <Size>4295413012</Size>
    <Owner>
      <ID>02d6176db174dc93cb1b899f7c6078f08654445fe8cf1b6ce98d8855f66bdbf4</ID>
      <DisplayName/>
    </Owner>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
</ListBucketResult>

Я не хочу показывать эту страницу со списком, но я хочу, чтобы все файлы в корзине были доступны для чтения всем, включая файлы, добавленные в корзину позже. Как этого добиться?


person luawtf    schedule 05.02.2021    source источник


Ответы (3)


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

В дополнение к политике @tapos-ghosh, приведенной выше, вы должны применить это как политику уровня корзины:

  • Создайте файл с этим определением политики, например, Bucket_pol.json.
  • Примените политику корзины:

mc policy set-json Bucket_pol.json site1/public/ Разрешение на доступ для site1/public/ установлено из `bucket_pol.json

Теперь я могу получить доступ к определенному объекту:

curl http://minio1:9000/public/public.object
Ubuntu 20.04.2 LTS \n \l

Но я не могу получить список объектов для ведра:

curl http://minio1:9000/public/
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><BucketName>public</BucketName><Resource>/public/</Resource><RequestId>1668F2D9FA3B99E9</RequestId><HostId>c37065ef-0eb8-4cf3-847a-ffedd29f9e30</HostId></Error>
person Eco    schedule 03.03.2021

вам нужно настроить политику. Я предоставляю вам конфигурацию политики, помогите с этим файлом настроить вашу политику

{
   "Statement":[
      {
         "Action":[
            "s3:GetBucketLocation"
         ],
         "Effect":"Allow",
         "Principal":{
            "AWS":[
               "*"
            ]
         },
         "Resource":[
            "arn:aws:s3:::psb-new"
         ]
      },
      {
         "Action":[
            "s3:GetObject"
         ],
         "Effect":"Allow",
         "Principal":{
            "AWS":[
               "*"
            ]
         },
         "Resource":[
            "arn:aws:s3:::psb-new/*"
         ]
      }
   ],
   "Version":"2012-10-17"
}
person tapos ghosh    schedule 13.02.2021

Если имя моей корзины file

mc policy set none myminio/file
mc policy set download myminio/file/*
person Hadi Rasekh    schedule 13.04.2021