【问题标题】:Can I change the provider to use aws / aws-sdk-php?我可以更改提供程序以使用 aws / aws-sdk-php 吗?
【发布时间】:2022-04-01 23:09:54
【问题描述】:

我正在搜索一个库 PHP 以仅使用 S3 协议(不是 Amazon 的 AWS S3)。

我找到了适用于 PHP 的 AWS 开发工具包:https://github.com/aws/aws-sdk-php

但是,我可以更改提供程序以使用它吗?

例如:我可以管理 Scaleway 的 S3 服务器吗?头孢?等等?

谢谢你:)

扎克,

【问题讨论】:

  • 这个问题不够清楚。您是否尝试在 PHP 上通过 AWS sdk 使用 s3 API?
  • 你能解释一下你想做什么吗?
  • 抱歉,无论供应商如何(AWS、Scaleway、Minio 等),我都愿意使用 S3 协议。我的问题是:我可以使用 aws-sdk-php 来管理我的对象(推送、更新、删除、创建等)吗?例如:我可以使用 Scaleway 提供商 (scaleway.com/en/object-storage) 在 S3 上的这个 sdk 管理我的对象吗?如果我再次不清楚,请不要犹豫告诉我^^

标签: php api sdk aws-php-sdk


【解决方案1】:

不确定是否仍然与您相关,但我确实设法将适用于 PHP 的 AWS 开发工具包与 Scaleway 对象存储一起使用。

唯一的技巧是将bucket-endpoint 设置为true,提供endpoint 作为Scaleway 中存储桶设置中的存储桶端点,还有一件更重要的事情,将凭据作为数组提供,而不是让SDK生成/检查它们。请参阅下面的代码示例:

$client = new Aws\S3\S3Client([
    'version' => 'latest',
    'region' => 'bucketregion', //eg. 'fr-par'
    'credentials' => [
        'key'    => 'your access key',
        'secret' => 'your secret key',
    ],
    'endpoint' => 'http://mybucket.s3.fr-par.scw.cloud',
    'bucket_endpoint' => true
]);

try {
    $client->putObject(array(
        'Bucket'=>'butcketname',
        'Key' =>  'path-where-you-want-to-upload-in-bucket',
        'SourceFile' => 'system-path-to-file',
        'ACL'    => 'public-read', //for public access
    ));
} catch (S3Exception $e) {
    //code when fails
}

我刚刚使用了这段代码,因为我遇到了同样的问题,我可以 100% 确认这段代码可以使用 AWS PHP SDK 将文件上传到 Scaleway 对象存储,截至 2022 年 4 月。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2021-06-25
    • 2019-05-15
    • 2018-11-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 2022-01-21
    • 1970-01-01
    相关资源
    最近更新 更多