#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. ну вот и все… это ответ, который я искал. приветствую Джеффа за продолжение.