我配置了以下适配器和服务:
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": "*"
}
}
]
我试过不同的帐户,但没有一个工作。我不知道我做错了什么。我需要启用其他功能吗?
谢谢!
答案 0 :(得分:1)
在最新版本的php sdk中更改如何管理凭据是一个问题。现在他们使用Credentials对象。
如果您使用的是aws / aws-sdk-php-symfony软件包,则无需将s3_client创建为服务。
使用
初始化配置中的sdkaws:
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