小编unc*_*eat的帖子

S3存储桶策略和IAM角色冲突

我正在尝试使用S3存储桶策略提供对存储桶的常规访问,同时还允许使用角色策略对角色进行特定访问。Lambda函数使用该角色来处理存储桶中的对象。它在第一个障碍处就停止了-即使角色策略中允许并且没有在存储桶策略中明确拒绝,它也无法获取带有前缀“ incoming /”的任何内容。

角色政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowBucketPut",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*"
        },
        {
            "Sid": "AllowIncomingGetDelete",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::bucket-name",
            "Condition": {
                "StringLike": {
                    "s3:prefix": "incoming/*"
                }
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

注意:我还尝试了删除条件并将资源更改为“ arn:aws:s3 ::: bucket-name / incoming *”,这似乎仅改变了策略模拟器的行为。另一个注意事项:使用“ incoming / *”前缀的存储桶中的GET在模拟器中确实有效,但实际上没有。

我不确定以下存储桶策略中的任何声明,因为我不确定可能相关。IP地址已被省略。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowPublicList",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::bucket-name",
            "Condition": {
                "StringLike": {
                    "s3:prefix": "public*" …
Run Code Online (Sandbox Code Playgroud)

lambda amazon-s3 amazon-web-services amazon-iam

3
推荐指数
2
解决办法
868
查看次数

Windows C驱动器上的实际可用空间是多少

我有一个批处理脚本,我需要确保我有至少3 GB的可用空间.

要通过命令行获取可用空间,请键入:

fsutil volume diskfree C: | find /i "avail free"
Total # of avail free bytes  : 872762081280
Run Code Online (Sandbox Code Playgroud)

这是字节数,当您在C驱动器上右键单击" - >'property'时,也会显示相同的字节数.

但是,当我右键单击我的C盘上的' - >'property'时,在872,762,081,280旁边,它显示GB值仅为812GB的可用空间.这与872762081280的字节值完全不同.

我认为这可能是由于1024bytes = 1kb的Windows转换.但是,这个转换将显示我有852,306,720kb可用(或852GB)仍然不接近'Local Disk(C :) Properties'窗口向我显示的812GB.

有谁知道哪些窗口使用的数学将872,762,081,280字节转换为812GB?

windows storage batch-file hard-drive

1
推荐指数
2
解决办法
5169
查看次数

如何检查是否只设置了三个变量中的一个

我想限制用户输入(通过Getopt::Long)可能的三个值中的一个。值为“pc-number”、“ip-address”和“surname”。

当有两个值时,我正在执行以下操作:

if ((!$pc_number and !$address) or ($pc_number and $address)) {
    pod2usage("You must supply pc_number OR ip_address.");
    exit;
} elsif ($pc_number) {
    (do stuff)
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能简单地确保用户只设置了三个变量中的一个?

perl getopt-long

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

当我尝试使用嵌套的 given/when 语句时,为什么会出现“Bad name after test3'”错误?

使用 Perl v5.10 我试图嵌套given语句 - 即在满足given初始when情况之一时调用语句。例子:

my $value = "test3";
my $subvalue = "subtest2";
my $content .= "\nvalue:";

given($value) {
    when ('test1') { $content .= "test1" }
    when ('test2 ) { $content .= "test2" }
    when ('test3') {
        given($subvalue) {
            when ('subtest1') { $content .= "subtest1" }
            when ('subtest2') { $content .= "subtest2" }
            when ('subtest3') { $content .= "subtest3" }
            when ('subtest4') { $content .= "subtest4" }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

test3' 后的名称错误,位于 …

perl switch-statement

-3
推荐指数
1
解决办法
3188
查看次数