1

В моем веб-приложении я использую ведро Amazon S3 для хранения изображений, и мне нужно, чтобы мой хост-кодогенератор отображал изображения из ведра S3, но с моим URL-адресом хоста.Маскировка доменов Codeigniter для Buzz Amazon S3

Например:

mywebapp.com/products/image1.jpg будет отображать содержимое из mywebapp.s3.amazonaws.com/products/image1.jpg

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

+0

Почему бы просто не использовать ссылку S3 напрямую когда вам это нужно? Мы, по крайней мере, должны знать, чего именно вы хотите достичь. – xiankai

+0

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

+0

Тогда вы хотите не перенаправление URL, это маскирование домена. http://en.wikipedia.org/wiki/Domain_Masking – xiankai

ответ

0

Первый груз помощник URL в конструкторе, если вы еще не сделали это уже:

$this->load->helper('url'); 

тогда, когда вам нужно перенаправлять вы можете просто позвонить:

$s3_url = "https://mywebapp.s3.amazonaws.com/products/image1.jpg"; 

// you can omit the last two parameters for the default redirect 
redirect($s3_url, 'location', 301); 

Я думаю, что вы хотите услуга, в которой вы получаете доступ к URL-адресу и получаете изображение, вот мое решение

<?php if (!defined('BASEPATH')) die(); 
class Img extends CI_Controller { 

    public function __construct() 
    { 
     parent::__construct(); 

     $this->load->helper('url'); 

     // this is the db model where you store the image's urls 
     $this->load->model('images_model', 'img_m'); 
    } 

    // accessed as example.com/img/<image_id> 
    // redirects to the appropiate s3 URL 
    public function index() 
    { 
     // get the second segment (returns false if not set) 
     $image_id = $this->uri->segment(2); 

     // if there was no image in the url set: 
     if ($image_id === false) 
     { 
      // load an image index view 
      $this->load->view('image_index_v'); 
      exit; 
     } 

     $url = $this->img_m->get_url($image_id); 

     // get_url() should return something like this: 
     $url = "https://mywebapp.s3.amazonaws.com/products/image1.jpg"; 

     // then you simply call: 
     redirect($url, 'location', 301); 
    } 
} 

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

  • Нет связанных вопросов^_^