我正在尝试结合Symfony2,KnpGaufetteBundle&亚马逊S3。 从KnpGaufette Bundle我得到一个xml定义用于我的配置。但它是在xml中,我的配置是在yml中。不知怎的,我无法理解它。如何在yml中定义以下变量?他们是什么意思?
<service id="acme.s3" class="AmazonS3">
<argument type="collection">
<argument key="key">%acme.aws_key%</argument>
<argument key="secret">%acme.aws_secret_key%</argument>
</argument>
</service>
<service id="acme.s3.adapter" class="Gaufrette\Adapter\AmazonS3">
<argument type="service" id="acme.s3"></argument>
<argument>%acme.s3.bucket_name%</argument>
</service>
<service id="acme.fs" class="Gaufrette\Filesystem">
<argument type="service" id="acme.s3.adapter"></argument>
</service>
所以,要真正让它工作,我们不仅要在yml中放下配置(已经由chmeliuk解决了 - >谢谢),但我们还需要为curl配置cacert.pem文件。 你可以在这里找到一个合适的人:http://curl.haxx.se/ca/cacert.pem
现在将其放在您想要的任何位置,然后将以下行与其他 certificate_authority 条目一起使用:
services:
acme.s3:
class: AmazonS3
arguments:
options: { key: %acme.aws_key%, secret: %acme.aws_secret_key%, certificate_authority: "pathWhereYouDidPutThisFile/cacert.pem" }
acme.s3.adapter:
class: Gaufrette\Adapter\AmazonS3
arguments:
service: @acme.s3
bucket_name: %acme.s3.bucket_name%
acme.fs:
class: Gaufrette\Filesystem
arguments:
adapter: @acme.s3.adapter
这解决了您可能没有的CA Cert cURL Error 60。
答案 0 :(得分:5)
相同的配置,但是采用yml格式。
services:
acme.s3:
class: AmazonS3
arguments:
options: { key: %acme.aws_key%, secret: %acme.aws_secret_key% }
acme.s3.adapter:
class: Gaufrette\Adapter\AmazonS3
arguments:
service: @acme.s3
bucket_name: %acme.s3.bucket_name%
acme.fs:
class: Gaufrette\Filesystem
arguments:
adapter: @acme.s3.adapter
定义以下参数:%acme.aws_key%,%acme.aws_secret_key%,%acme.s3.bucket_name%添加到项目parameters.yml文件(或定义服务的同一配置)下一行:< / p>
parameters:
acme.aws_key: YOUR_AWS_KEY
acme.aws_secret_key: YOUR_AWS_SECRET_KEY
acme.s3.bucket_name: cool_bucket_name