Php 使用SimpleImage调整图像大小,并将其直接发送到AmazonS3
上传图像后,我使用调整大小并发送到AWS S3。今天我将图像保存在本地磁盘中,发送到S3,然后删除本地文件。我想跳到保存和删除本地文件的步骤 我试过:Php 使用SimpleImage调整图像大小,并将其直接发送到AmazonS3,php,amazon-s3,Php,Amazon S3,上传图像后,我使用调整大小并发送到AWS S3。今天我将图像保存在本地磁盘中,发送到S3,然后删除本地文件。我想跳到保存和删除本地文件的步骤 我试过: $S3->putObject([ 'Bucket' => 'mybucket', 'Key' => 'myfile.jpeg', 'Body' => (new SimpleImage('/path/to/myfile.jpeg')) ->bes
$S3->putObject([
'Bucket' => 'mybucket',
'Key' => 'myfile.jpeg',
'Body' => (new SimpleImage('/path/to/myfile.jpeg'))
->bestFit(
800,
600
)->toString();
]);
该文件已发送,但当我在AWS S3访问其公共URL时,浏览器尝试下载该文件而不显示它
欢迎任何帮助 您需要将对象公开并添加ContentType
$S3->putObject([
'Bucket' => 'mybucket',
'Key' => 'myfile.jpeg',
'ContentType' => 'image/jpeg', // <-- add this line
'Body' => (new SimpleImage('/path/to/myfile.jpeg'))
->bestFit(
800,
600
)->toString();
]);
$S3->putObject([
“Bucket”=>“mybucket”,
'Key'=>'myfile.jpeg',
'ContentType'=>'image/jpeg',//(新的SimpleImage('/path/to/myfile.jpeg'))
->最佳匹配(
800,
600
)->toString();
]);
bucket有一个公共策略,因此默认情况下所有文件都是公共的。请尝试添加“ContentType”=>“image”,另外,这可能会有所帮助。。。当您看到S3上的图像属性时,它是否表示它是公共的?另外,尝试将路径包含到html页面中,并查看是否显示图像。。。当我通过S3访问图像并下载时,我遇到了这个问题,但它完美地显示在浏览器中添加了“ContentType”,它工作正常,谢谢!请更新你的答案,我会接受的。