2

Cloudinary から S3 に切り替える KeystoneJS プロジェクトがあります。このプロジェクトは、Cloudinary を使用してすぐに使用できます。ただし、ストレージに S3 を使用するように移行したいと考えています。

現在、ファイルに S3 をセットアップしていkeystone.jsます。

var config = require('./config.json');

keystone.set('s3 config', { 
  bucket: config.s3.bucket, 
  key: config.s3.key, 
  secret: config.s3.secret 
});

Page画像をアップロードしたいという別のモデルがあります。heroImage以前は単純だったというフィールドがあります{ type: Types.Cloudinary }

ただし、S3 を使用するには、次のように変更する必要がありました。

heroImage: {
  type: Types.S3File,
  format: function(item, file) {
    return '<img src="' + file.url + '" style="max-width: 300px">';
  }
}

AdminUI に入ると、すべて問題ないように見えます。クリックできUpload File、 を押すSaveと、成功メッセージが表示されます。Transmit で S3 バケットを確認したところ、ファイルがアップロードされていないことがわかりました。さらに、ファイルの URL に移動すると、次のようになります。

<Error>
<Code>PermanentRedirect</Code>
<Message>
The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.
</Message>
<Bucket>MY_BUCKET</Bucket>
<Endpoint>MY_BUCKET.s3.amazonaws.com</Endpoint>
<RequestId>5CBD0F317C517254</RequestId>
<HostId>
VCoEc5PFevAecvyYC79ta7CIzWBewQ90kribJ59NAQ5JHn8dNEwMV+Ncv9cSfT1l
</HostId>
</Error>

これを Cloudinary から S3 に切り替える手助けがあれば大歓迎です。

4

1 に答える 1

3

.S3 バケット名から削除するだけで済みました。たとえば、 の代わりにbucketname.com、名前を に変更しましたbucketnamecms

于 2015-01-28T21:33:02.763 に答える