您在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
答案 0 :(得分:2)
检查putObjectFile使用的inputFile方法。这会检查文件或目录是否存在,但您使用的是网址。
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);
答案 1 :(得分:0)
我认为你不能使用putObjectFile的远程文件。您必须先下载远程文件。