从实例配置文件元数据服务器检索凭据时出错。网络无法访问

时间:2015-10-27 15:23:14

标签: symfony gaufrette

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

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": "*"
            }
        }
    ]

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

谢谢!

1 个答案:

答案 0 :(得分: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