,您可以按照以下步骤进行操作:
upload_max_filesize
和post_max_size
设置足够大,比如设置为4M
或更大。putObject
方法将文件上传到S3存储桶。ACL
参数来定义文件的访问权限。以下是一个简单的示例代码,演示如何在EC2中使用PHP上传文件到S3:
<?php
require 'vendor/autoload.php'; // 引入AWS SDK for PHP
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
// 设置S3配置
$s3Config = [
'region' => 'your_region',
'version' => 'latest',
'credentials' => [
'key' => 'your_aws_access_key',
'secret' => 'your_aws_secret_key',
],
];
// 初始化S3客户端
$s3 = new S3Client($s3Config);
// 处理表单提交
if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_FILES['file'])) {
$file = $_FILES['file'];
// 生成唯一的文件名
$filename = uniqid('file_', true) . '.' . pathinfo($file['name'], PATHINFO_EXTENSION);
try {
// 上传文件到S3
$result = $s3->putObject([
'Bucket' => 'your_s3_bucket',
'Key' => $filename,
'Body' => fopen($file['tmp_name'], 'rb'),
'ACL' => 'public-read', // 设置文件权限为公共读
]);
// 打印文件的公共访问链接
echo '文件上传成功!公共访问链接:' . $result['ObjectURL'];
} catch (S3Exception $e) {
// 处理上传错误
echo '文件上传失败:' . $e->getMessage();
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>文件上传</title>
</head>
<body>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
</body>
</html>
请注意替换代码中的your_region
、your_aws_access_key
、your_aws_secret_key
、your_s3_bucket
为您自己的实际值。
推荐的腾讯云相关产品:腾讯云对象存储(COS)
希望以上信息对您有所帮助,如有其他问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云