小编ffo*_*let的帖子

通过使用 AWS-SDK PHP 生成的预签名帖子拒绝 AWS S3 上传访问

我正在尝试使用 AWS SDK PHP 生成的预签名帖子将文件(用于测试的图像)上传到我的 s3 存储桶。首先我生成预签名的帖子,然后我使用 Postman 或通过简单的 html 表单使用给定的 PostObjectV4 数据手动创建请求...填写完所有内容后,请求结果为“访问被拒绝”:-(。与客户端关联的用户生成 PostObjectV4 在相应的存储桶上已允许 s3:PutObject 策略。

我已经尝试过:

  • 将我的存储桶设置为公共写入,并且它有效!这表明我存在权限/政策问题...不幸的是我的存储桶不必公开...
  • 通过aws命令行上传文件,也可以

预签名后生成的 PHP 代码(数据位于 $postObject 中):

$assetAwsS3Key = $this->getAssetAwsS3Key($asset);

$options = [
    ['starts-with', '$key', 'myDir/'],
];

// Optional: configure expiration time string
$expires = '+24 hours';

// Set some defaults for form input fields
$formInputs = ['acl' => 'private'];

$postObject = new PostObjectV4(
    $this->buildAwsS3UserClient(),
    $this->awsBucketName,
    $formInputs,
    $options,
    $expires
);

// Get attributes to set on an HTML form, e.g., action, method, …
Run Code Online (Sandbox Code Playgroud)

php amazon-s3 amazon-iam aws-php-sdk

5
推荐指数
1
解决办法
2450
查看次数

标签 统计

amazon-iam ×1

amazon-s3 ×1

aws-php-sdk ×1

php ×1