从 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);