2

我决定在我们的一个项目中使用 Directus 作为 Headless CMS。为了存储媒体文件,我们决定使用 AWS S3 作为存储适配器。我已按照 Directus 文档中的所有说明如何设置 S3 的配置,但我不断收到此错误:

message: "No permission to write: 122d303f-b69a-48f8-8138-8f3404b3c992.jpg"

我已经从 CLI 命令尝试了 AWS S3 存储桶,我可以在那里上传文件并列出文件,但是从 Directus 我没有写入错误的权限。

Directus 中的存储配置如下所示:

 'storage' => [
    'adapter' => 's3',      // What storage adapter to use for files
                            // Defaults to the local filesystem. Other natively supported
                            // options include: Amazon S3, Aliyun OSS, Azure
                            // You'll need to require the correct flysystem adapters through Composer
                            // See https://docs.directus.io/extensions/storage-adapters.html#using-aws-s3
    'root' => '/originals',          // Where files are stored on disk
    'thumb_root' => '/thumbnails',    // Where thumbnails are stored on disk
    'root_url' => '##S3_URL##/originals',            // Where files are accessed over the web        
    // 'proxy_downloads' => false, // Use an internal proxy for downloading all files
    // S3
    ////////////////////////////////////////
    'key'    => '##S3_KEY##',
    'secret' => '##S3_SECRET##',
    'region' => '##S3_REGION##',
    'version' => 'latest',
    'bucket' => '##S3_BUCKET##',
    'options' => [
       'ACL' => 'public-read',
       'CacheControl' => 'max-age=604800'
    ],
],

任何人都可以对此提供任何见解吗?

提前致谢。

4

2 回答 2

1

需要添加以下内容

'options' => [
    'ACL' => 'private',
],

我发现我不需要存储桶策略更新。尝试上传到私有存储桶时,只需将其添加到 config.php 即可。

于 2020-09-14T19:22:30.860 回答
0

我遇到过同样的问题。就我而言,我已经在存储桶上允许了“s3:PutObjectAcl”,它开始工作:) 看来这是一个飞行系统问题。

于 2020-09-10T08:13:16.120 回答