2015-01-14 5 views
1

Привет, у меня есть библиотека ведро S3 в кодеигниторе, и я пытаюсь загрузить файл из папки, но он дает мне ошибку. Очень ценится, если кто-то может указать, что я делаю.Загрузка в ведро S3 от Codeigniter

В папке модуля под кодом.

$this->load->library('s3'); 
    $bucket = "xxxxxxxxxx"; 
    $file = "http://localhost/xxxx/backup/01.txt"; 
    $this->s3->putObjectFile($file, $bucket, 'test', S3::ACL_PUBLIC_READ); 

Я получаю следующую ошибку.

A PHP Error was encountered 

Severity: User Warning 
Message: S3::inputFile(): Unable to open input file: http://localhost/xxxx/backup/01.txt 
Filename: libraries/S3.php 
Line Number: 310 

ответ

2

Проверьте метод inputFile, его использовали putObjectFile. Это проверяет, существует ли файл или каталог, но вы используете URL-адрес.

public static function inputFile($file, $md5sum = true) 
{ 
    if (!file_exists($file) || !is_file($file) || !is_readable($file)) 
    { 
     trigger_error('S3::inputFile(): Unable to open input file: ' . $file, E_USER_WARNING); 
     return false; 
    } 
    return array('file' => $file, 'size' => filesize($file), 
     'md5sum' => $md5sum !== false ? (is_string($md5sum) ? $md5sum : 
         base64_encode(md5_file($file, true))) : ''); 
} 

Это файл на вашем сервере? Просто добавьте путь к вашему файлу:

$this->load->library('s3'); 
$bucket = "xxxxxxxxxx"; 
$file = "/filesystem/backup/01.txt"; 
$this->s3->putObjectFile($file, $bucket, 'test', S3::ACL_PUBLIC_READ); 
+0

IIuisi..I тестировал код на XAMPP, и когда я переместил его на сервер, мой код работал. Библиотека S3 была просто прекрасна, проблема была в пути к файлу. Я поместил полный путь на сервер, но по какой-то причине все пути, которые я попробовал, не удалось на ПК. – chaky

0

Я не думаю, что вы можете использовать удаленные файлы для putObjectFile. Сначала вам нужно будет загрузить ваш удаленный файл.

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