如何在Amazon S3客户端覆盖主机?

时间:2014-03-03 11:36:51

标签: php symfony amazon-web-services amazon-s3

我使用symfony2作为我的应用程序的框架,我想连接到我的ceph客户端,因为它在API中说(与亚马逊s3相同)。

composer.json:

    "knplabs/knp-gaufrette-bundle": "dev-master",        
    "aws/aws-sdk-php": "*",
    "amazonwebservices/aws-sdk-for-php": "*"

我使用gaufrette bundle来管理我的文件系统

到目前为止我得到的是:

config.yml
    mydrive.aws_s3.client:
        class: Aws\S3\S3Client
        factory_class: Aws\S3\S3Client
        factory_method: 'factory'
        arguments:
            -
                key: %my_drive_s3_key%
                secret: %my_drive_s3_secret_key%
                region: %my_drive_s3_region%
knp_gaufrette:
    adapters:
        my_drive_s3_v2:
            aws_s3:
                service_id: 'mydrive.aws_s3.client'
                bucket_name: '%my_drive_s3_bucket_name%'
                options:
                    create: true
                    directory: '%my_drive_s3_directory%'
    filesystems:
        user_fs:
            adapter:    my_drive_s3_v2
            alias:      my_drive_filesystem
    stream_wrapper:
        protocol: data

所以跟随api这是我连接亚马逊s3 serwers的方式 但我不使用亚马逊s3 serwers我使用我自己的ceph serwers。 我的问题是我如何更改亚马逊s3客户端的主机?

现在它是这样的: [curl] 56: Problem (2) in the Chunked-Encoded data [url] https://mybucket.s3.amazonaws.com

我想要这个 https://mybucket.s3.amazonaws.comhttps://mybucket.s3.custom.com

这是随后的api:https://github.com/KnpLabs/KnpGaufretteBundle#awss3

1 个答案:

答案 0 :(得分:0)

尝试设置base_url参数。

config.yml
    mydrive.aws_s3.client:
        class: Aws\S3\S3Client
        factory_class: Aws\S3\S3Client
        factory_method: 'factory'
        arguments:
            -
                key: %my_drive_s3_key%
                secret: %my_drive_s3_secret_key%
                region: %my_drive_s3_region%
                base_url: https://mybucket.s3.custom.com

请查看 AWS SDK for PHP用户指南以查看所有client configuration options