首页 > 解决方案 > 如何使用 AWS SDK for Yii2 将图像上传到数字海洋空间?

问题描述

由于 Digital Ocean Spaces API 与 AWS SDK 兼容,如何使用 AWS SDK for Yii2 以编程方式将图像上传到 Digital Ocean Spaces?

这是我的详细信息

Good, we have the following data: 
1. endpoint: fra1.digitaloceanspaces.com
2. bucket name: dev-abc
3. api key: xxxxxxxxxxxxx and api secret: xxxxxxx
4. The url that you need to use to deliver assets is https://dev-abc

我已经尝试过这段代码,但它不起作用

$uploader = new FileUpload(FileUpload::S_S3, [
    'version' => 'latest',
    'region' => 'fra1',
    'endpoint' => 'https://fra1.digitaloceanspaces.com',
    'credentials' => [
        'key' => 'xxxxxxxxxxxxx ',
        'secret' => 'xxxxxxx'
    ],
    'bucket' => 'dev-abc'
]);

标签: phpyii2digital-ocean

解决方案


您可以使用 php 代码在数字海洋中上传图像:

  1. 配置客户端:

    使用 Aws\S3\S3Client;

    $client = new Aws\S3\S3Client([
        'version' => 'latest',
        'region'  => 'us-east-1',
        'endpoint' => 'https://nyc3.digitaloceanspaces.com',
        'credentials' => [
            'key'    => getenv('SPACES_KEY'),
            'secret' => getenv('SPACES_SECRET'),
        ],
    ]);
    
  2. 创建新空间

    $client->createBucket([
        'Bucket' => 'example-space-name',
    ]);
    
  3. 上传图片

    $client->putObject([
        'Bucket' => 'example-space-name',
        'Key'    => 'file.ext',
        'Body'   => 'The contents of the file.',
        'ACL'    => 'private'
    ]);
    

推荐阅读