使用php sdk将文件直接上传到AWS S3中的文件夹的语法是什么?我成功上传到一个bucket使用:
$response = $s3->create_object($bucket, $file_name, array('fileUpload' => $file_path))
tx!
kpbpu0081#
试试这边
$s3->create_object($bucket, 'folder/filename', $options)
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; }
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);
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);
4条答案
按热度按时间kpbpu0081#
试试这边
2wnc66cl2#
简单地做一件事,添加'path/' ex:如果你有一个文件夹'videos'在一个bucket,那么你必须在'key' =〉'videos/video-name-here'中添加这样的路径。
fivyi3re3#
这是你可以尝试的另一种方法
4xy9mtcn4#
由于这里所有的答案都很旧,这是谷歌上的第一个结果,我发布更新的版本: