从 Codeigniter 上传到 S3 存储桶
uploading to S3 bucket from Codeigniter
您好,codeigniter 中有 S3 存储桶库,我尝试从文件夹上传文件,但出现错误。如果有人能指出我在做什么,我将不胜感激。
在代码下方的 Module 文件夹中。
$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
我认为您不能将远程文件用于 putObjectFile。您必须先下载远程文件。
检查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);
您好,codeigniter 中有 S3 存储桶库,我尝试从文件夹上传文件,但出现错误。如果有人能指出我在做什么,我将不胜感激。
在代码下方的 Module 文件夹中。
$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
我认为您不能将远程文件用于 putObjectFile。您必须先下载远程文件。
检查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);