AWS S3 PHP 是否可以将文件直接上传到存储桶中的文件夹



使用 php sdk 将文件直接上传到 AWS S3 中的文件夹的语法是什么?

我使用以下命令成功上传到存储桶:

$response = $s3->create_object($bucket, $file_name, array('fileUpload' => $file_path))

咔嚓!

试试这种方式

$s3->create_object($bucket, 'folder/filename', $options)

只需做一件事,添加"path/"例如:如果您在存储桶中有一个文件夹"视频",则必须在"键"=>"视频/视频名称-这里"中添加这样的路径。

try {
    // Upload data.
$result = $s3Client->putObject([
    'Bucket' => bucket-name,
    'Key'    => 'videos/video-name', //add path here
    'Body'   => fopen($video, 'r'),
    'ACL'    => 'public-read'
]);
print_r($result['ObjectURL']);
} catch (S3Exception $e) {
    echo $e->getMessage() . PHP_EOL;
}

由于这里的所有答案都非常古老,这是Google上的第一个结果,因此我发布了更新的版本:

$client = new AwsS3S3Client([
    'region'  => '-- your region --',
    'version' => 'latest',
    'credentials' => [
        'key'    => "-- your IAM --",
        'secret' => "-- your secret --",
    ]
]);
$dir = '/local/directory';
$bucket = 'my-bucket';
$keyPrefix = '';
$options =[
    'params'      => ['ACL' => 'public-read'],
    'concurrency' => 20,
    'debug'       => true
];
$client->uploadDirectory($dir, $bucket, $keyPrefix, $options);

这是您可以尝试的另一种方法

    $this->Aws->bucket = 'bucket'
    $old_file = $dir. '/'.old_file_name;       
    $new_file = $dir. '/'.new_file_name;
    $file_permission = 'private';
    $this->Aws->upload($old_file , $new_file , $file_permission);

最新更新