AWS S3 PHP我可以直接上传文件到存储桶中的文件夹吗

kzmpq1sx  于 2023-04-28  发布在  PHP
关注(0)|答案(4)|浏览(175)

使用php sdk将文件直接上传到AWS S3中的文件夹的语法是什么?
我成功上传到一个bucket使用:

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

tx!

kpbpu008

kpbpu0081#

试试这边

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

2wnc66cl2#

简单地做一件事,添加'path/' ex:如果你有一个文件夹'videos'在一个bucket,那么你必须在'key' =〉'videos/video-name-here'中添加这样的路径。

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;
}
fivyi3re

fivyi3re3#

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

$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);
4xy9mtcn

4xy9mtcn4#

由于这里所有的答案都很旧,这是谷歌上的第一个结果,我发布更新的版本:

$client = new \Aws\S3\S3Client([
    '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);

相关问题