上传对象

您可以使用 putObject 接口上传对象,以下代码展示如何上传一个对象:

$bucket = '<your-bucket-name>';
$object_key = '<your-object-key>';
$file_Path = '<your-file-path>';
try {
    $result = $s3Client->putObject([
        'Bucket' => $bucket,
        'Key' => $object_key,
        'SourceFile' => $file_Path,
    ]);
} catch (S3Exception $e) {
    echo $e->getMessage() . "\n";
}

上传对象时如果不设置对象访问权限,默认的对象访问权限是 private,即只有对象的拥有者才能访问该对象,若需要改为公共读 public read,可以在上传对象时加入对象访问权限acl设置,您也可以在上传对象以后通过 putObjectAcl 更改对象访问权限,具体对象访问权限设置请参考3.2.8节。

以下代码展示如何设置在上传对象时通过 CannedAccesssControlList 设置对象访问权限为公共读:

$bucket = '<your-bucket-name>';
$object_key = '<your-object-key>';
$file_Path = '<your-file-path>';
try {
    $result = $s3Client->putObject([
        'ACL' => 'public-read',      //设置 ACL 为公共读
        'Bucket' => $bucket,
        'Key' => $object_key,
        'SourceFile' => $file_Path,
    ]);
} catch (S3Exception $e) {
    echo $e->getMessage() . "\n";
}

注意:putObject对文件大小有限制,最大能上传1GB大小的文件,超过1GB需要使用分片上传。