2

我配置了以下适配器和服务:

knp_gaufrette:
    adapters:
        sc_documents:
            aws_s3:
                service_id: sc.aws_s3.client
                bucket_name:  HIDDEN
                options:
                    directory: documents
                    create: true
    filesystems:
        sc_documents_fs:
            adapter:    sc_documents
            alias:  sc_document_storage

sc.aws_s3.client:
    class: Aws\S3\S3Client
    factory_class: Aws\S3\S3Client
    factory_method: factory
    arguments:
        -
            key: 'HIDDEN'
            secret: 'HIDDEN'
            region: 'eu-central-1'
            version: '2006-03-01'

我不断收到以下读取和写入 错误:从实例配置文件元数据服务器检索凭据时出错。(cURL 错误 7:无法连接到 169.254.169.254 端口 80:网络无法访问(参见http://curl.haxx.se/libcurl/c/libcurl-errors.html))

桶策略是:

"Id": "Policy1445959171046",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "STMT",
            "Action": "s3:*",
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::HIDDEN/*",
            "Principal": {
                "AWS": "*"
            }
        }
    ]

我尝试了不同的帐户,但没有一个有效。我想知道我做错了什么。我需要启用其他功能吗?

谢谢!

4

1 回答 1

1

这是在最新版本的 php sdk 中更改凭据管理方式的问题。现在他们使用 Credentials 对象。

如果您使用的是 aws/aws-sdk-php-symfony 捆绑包,则无需将 s3_client 创建为服务。

在你的配置中初始化 sdk

aws:
    version: latest
    region: us-east-1
    credentials:
        key: not-a-real-key
        secret: "@@not-a-real-secret" 
    S3:
        version: '2006-03-01'

只需将 aws.s3 客户端传递给 gaufrette 而不是您声明的客户端

knp_gaufrette:
    adapters:
        sc_documents:
            aws_s3:
                service_id: aws.s3
                bucket_name:  HIDDEN
                options:
                    directory: documents
                    create: true
于 2016-01-18T15:38:53.110 回答