php - 如何使用 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'
]);
解决方案
您可以使用 php 代码在数字海洋中上传图像:
配置客户端:
使用 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'), ], ]);
创建新空间
$client->createBucket([ 'Bucket' => 'example-space-name', ]);
上传图片
$client->putObject([ 'Bucket' => 'example-space-name', 'Key' => 'file.ext', 'Body' => 'The contents of the file.', 'ACL' => 'private' ]);
推荐阅读
- java - 是否可以在处理器中扫描类路径上的注释?
- reactjs - 打字稿不会因类型不匹配而失败
- spring-boot - 如何使用 spring data jpa 和 mongotemplate 了解 mongo 批量查询的执行统计信息?
- java - 通过 JDBC PrepareStatement 将参数传递给 CREATE LOGIN 类型的 SQL 语句
- python - 从电子邮件主题中提取日期戳
- python - 将多行元素文本转换为变量
- flutter - 如何显示图像,其文本填充到右侧填充线直到图像高度颤动
- javascript - 如何将 MongoDB 查询结果导出到文件
- html - CSS网格重复列自动填充和minmax不会使所有列的大小相同
- java - 如何覆盖 UserDetails 以使用角色?