我正在开发一个API,该API使用laravel使用预先签名的发布请求将图像从邮递员直接上传到AWS特定目录。以下是我用来生成json策略的代码。
以下是我要更新图像的步骤: 1)提供AWS策略详细信息和AWS详细信息的API。 2)前端将点击AWS并上传图像并返回图像URL。 3)将点击另一个API将返回的URL存储在数据库中。
这是正确的方法吗?
以下是我在函数中编写的代码。
$imageName = time().'.'.request()->image->getClientOriginalExtension();
$client = new S3Client([
'version' => 'latest',
'region' => env('AWS_DEFAULT_REGION'),
]);
$bucket = env('AWS_BUCKET');
$formInputs = ['acl' => 'public-read'];
$options = [
['acl' => 'public-read'],
['bucket' => $bucket],
['starts-with', '$key', config('filesystems.s3_patient_images_partial_path').$patient->id.'/'.$imageName],
];
$expires = '+2 hours';
$postObject = new \Aws\S3\PostObjectV4($client,$bucket,$formInputs,$options,$expires);
$formAttributes = $postObject->getFormAttributes();
$formInputs = $postObject->getFormInputs();
return $formInputs;
所以我的问题是,在收到json格式的响应后,前端开发人员将点击该URL上传图片!这是正确的方法!除了在哪里写,只有jpg,png图像可以接受并且大小特殊?