Как обновить доступ ACL объекта AWS S3? - PullRequest
0 голосов
/ 11 октября 2019

Я вставил объект в корзину AWS S3 с «открытым» доступом. Я хочу обновить этот объект, чтобы иметь "частный" доступ в некотором рабочем процессе отклонения.

Пробовал ниже и выполняется нормально, но файл все еще доступен.

func updateAccessPolicyForObject(filename string, folder string, awsAccess string) (bool, error) {
    _, err := bigS3.PutObjectAclRequest(&s3.PutObjectAclInput{
        ACL:    aws.String("private"),
        Bucket: aws.String(bucket),
        Key:    aws.String(folder + filename),
    })

    if err != nil {
        return false, fmt.Errorf("Error updating acl of an object: %v", err)
    }
    return true, nil
}

Ожидаемый вывод таков:: Файл должен стать недоступным.

1 Ответ

0 голосов
/ 12 октября 2019

Я не являюсь человеком Go, поэтому я попытался воспроизвести вашу ситуацию с помощью интерфейса командной строки AWS:

  • Загрузил файл в корзину Amazon S3, который не имеетa Bucket Policy
  • Попытка доступа к файлу через анонимный URL (например, https://my-bucket.s3-ap-southeast-2.amazonaws.com/foo): Доступ запрещен
  • Выполнить эту команду:
aws s3api put-object-acl --bucket my-bucket --key foo --acl public-read
  • Попытка доступа к файлу через анонимный URL: Успех
  • Выполнение этой команды:
aws s3api put-object-acl --bucket my-bucket --key foo --acl private
  • Попытка доступа к файлучерез анонимный URL: Отказ в доступе

Следовательно, описанный вами метод должен снова сделать объект закрытым. Таким образом, либо обновление ACL не выполнено, либо какой-то другой метод предоставляет доступ к объекту (например, Bucket Policy).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...