указание 30-секундного ACL, не работающего с Cloudfront?

#php #amazon-s3 #amazon-cloudfront

#php #amazon-s3 #amazon-cloudfront

Вопрос:

Используя PHP Amazon SDK, я успешно могу установить 30-секундный доступ для URL-адреса, используя следующую функцию: get_object_url($bucket, $filename, $preauth = 0, $opt = null)

 $s3->get_object_url($results['s3.bucket.name'], $results['s3.file.name'], '30 seconds');
  

Проблема в том, что он возвращает фантастический URL:

 "s3.url": "http://THECOOLEST.BUCKET.INTHEWORLD.EVER.s3.amazonaws.com/2011/04/18/image/png/8ba2d302-a441-45d4-8354-08e2b7e1a325.png?AWSAccessKeyId=XXXXXXXXXXXXXXXXXamp;Expires=1303162244amp;Signature=AWdUnHSaIBDmRcbwo2RFSUQaqBM=",
  

Когда я меняю URL на CNAME, который мы используем для cloudfront, список управления доступом не работает. Кто-нибудь знает, как get_object_url настроить CNAME?

Ответ №1:

Cloudfront и S3 — это две разные вещи.

Вам нужно настроить CNAME для вашего пакета S3. Смотрите документы AWS для получения дополнительной информации: http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html ?VirtualHosting.html#VirtualHostingCustomURLs

Комментарии:

1. Джефф, CNAME уже настроен. Список управления доступом не применяется к URL CNAME … только URL по умолчанию. Это тоже вопрос cloudfront … вопрос не к S3 конкретно.

2. @sdolgy — Ваш вопрос все еще сбивает с толку. get_object_url генерирует URL-адрес для файла в S3, но позже вы расскажете о CNAME Cloudfront. CNAMES и URL-адреса для Cloudfront и S3 разные. Чтобы сгенерировать URL для файла Cloudfront, который вы бы использовали get_private_object_url в cloudfront.class.php . Смотрите docs.amazonwebservices.com/AWSSDKforPHP/latest /…

3. ну вот и все… это ответ, который я искал. приветствую Джеффа за продолжение.