2017-01-08 6 views
1

Я использую S3FS lib (в приложении node.js) для загрузки файлов в мой каталог AWS S3. (Имеется в виду документации https://www.npmjs.com/package/s3fs) и stackoverflow answer hereНевозможно назначить разрешения ACL для загруженного файла при использовании узла S3FS js lib

s3fs объект инициализации
s3fsImpl = new s3fs(bucketPath, { accessKeyId: xxxxx, secretAccessKey: xxxxx, ACL: 'public-read' })

метод WriteFile: s3fsImpl.writeFile(fileName, stream)
файл успешно загружен, и я получаю "ETag" в ответ. Однако загруженный файл недоступен публично.

Как я могу предоставить правильные разрешения ACL, чтобы сделать его доступным для общедоступного чтения?

ответ

0

На самом деле я был в состоянии получить эту работу с следующим подходом в узле

Шаг 1: Установить и включить «aws-sdk» для доступа к ресурсам aws (я использовал его для S3)

var AWS = require('aws-sdk') 
var s3 = new AWS.S3() 

Шаг 2 :

s3.putObject({ 
      Bucket: AWS_BUCKET_NAME, // bucket name on which file to be uploaded 
      Key: uploadKey, // file name on s3 
      ContentType: file.type, // type of file 
      Body: new Buffer(fileData, 'binary'), // base-64 file stream 
      ACL: 'public-read' // public read access 
     }, function (err, resp) { 
      if (err) { // if there is any issue 
       console.error('failed file upload to S3:: ', err) 
       callback(err, null) 
      } 
      console.log('response from S3: ', resp) 
      callback(null, 'Success') 
     } 
    ) 

ACL: «общественного чтения» присвоит общественное чтение доступа к вашим СМИ/файл на S3

0

Вы можете предоставить ACL в качестве третьего варианта в writeFile способе, как

s3fsImpl.writeFile(fileName, stream,{ ACL: 'public-read'})

 Смежные вопросы

  • Нет связанных вопросов^_^