2016-01-06 2 views
0

Как интегрировать Amazon Cloud Front и S3 в приложение для обмена фотографиями?Amazon S3 и Cloud Front

В настоящее время я загружаюсь на S3 и возвращаю URL-адрес облачного интерфейса, но это не было очень успешным, потому что, похоже, есть латентность между s3 и облачным облаком, так что возвращаемый URL-адрес недействителен.

Кто-нибудь знает, как я могу обойти это?

Facebook использует Akamai, и если я загружу изображение, оно будет немедленно доступно.

Поблагодарили бы за некоторые идеи.

+1

Между S3 и CloudFront нет «латентности». Просьба привести примеры, используя соответствующий вывод из инструмента, такого как 'curl -v', для документирования ответов, подтверждающих то, что вы видите. –

+0

Вы говорите, что закачки на s3 немедленно распространяются на облачном? Я должен подождать несколько минут, иначе мне будет отказано в доступе. Я использую Java Api для загрузки файлов. –

ответ

0

Вы должны попытаться получить объект сразу через облачный режим. Я не уверен, почему это возможно, но вы попадаете в пределы S3's eventual consistency model.

Когда вы загружаете объект, сообщение занимает крошечное количество времени для распространения по службе S3. Как правило, это значительно меньше одной секунды и трудно обнаружить. (В предыдущей жизни работе, мы обнаружили, что может разумно гарантировать все файлы прибыли в течение 10 секунд, и 99,9% в течение 1 секунды)

Here's the official word from AWS; it's worth reading the whole page:

Процесс записывает новый объект в Amazon S3 и сразу же перечисляет ключи в своем ковше. Пока изменение не будет полностью распространено, объект может не отображаться в списке.

There's a much longer discussion on this stackoverflow question; если вы используете стандартный ведро S3, вам нужно немного изменить конечную точку, чтобы воспользоваться моделью чтения после записи.

Дальнейшее чтение: * Instrumental: Why you should stop using the us-standard Region in S3. Right Now™ * Read-After-Write Consistency in Amazon S3 (с 2009 года, содержит устаревшую информацию)

Один из способов отладки/доказать это по телефону getObjectMetadata прямо перед вашим CloudFront вызова. В этом случае он должен потерпеть неудачу.

Смежные вопросы