Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 Amazon S3 bucket策略,用于将照片匿名上传到bucket_Amazon S3 - Fatal编程技术网

Amazon s3 Amazon S3 bucket策略,用于将照片匿名上传到bucket

Amazon s3 Amazon S3 bucket策略,用于将照片匿名上传到bucket,amazon-s3,Amazon S3,我计划使用AmazonS3让用户从iPhone上传照片,然后让他们公开查看 我在理解如何在bucket策略中设置这些安全约束时遇到一些困难: 每个人都可以阅读每个文件 每个人都可以上传一个最大256K的新文件 任何人都不能删除任何文件 任何人都不能修改任何文件 也许下面类似的方法可以奏效,但我不确定您是否可以限制上传大小 { "Statement": [ { "Effect": "Allow", "Principal":"*", "Action"

我计划使用AmazonS3让用户从iPhone上传照片,然后让他们公开查看

我在理解如何在bucket策略中设置这些安全约束时遇到一些困难:

  • 每个人都可以阅读每个文件
  • 每个人都可以上传一个最大256K的新文件
  • 任何人都不能删除任何文件
  • 任何人都不能修改任何文件

也许下面类似的方法可以奏效,但我不确定您是否可以限制上传大小

{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal":"*",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:GetObjectAcl",
        "s3:PutObjectAcl"
      ],
      "Resource": "arn:aws:s3:::mybucket/*",
      "Condition": {}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetBucketAcl"
      ],
      "Resource": "arn:aws:s3:::mybucket",
      "Condition": {}
    }
  ]
}

好吧,最后我算是解决了。唯一的问题是,您不能在添加文件和更新文件时设置不同的权限。它们都包含在s3:PutObject中。此外,似乎不可能限制文件大小

{
    "Version": "2008-10-17",
    "Id": "policy",
    "Statement": [
        {
            "Sid": "allow-public-read",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket/*"
        },
    {
            "Sid": "allow-public-put",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::bucket/*"
        }
  ]
}

为什么要指定*Acl操作?因此没有设置最大大小限制的选项?