загрузка файла amazon s3 возвращает 404 - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь скачать файл в s3. Я следовал за библиотекой s3 на https://www.npmjs.com/package/s3, но не смог загрузить файл. И сообщение об ошибке не ясно. Там написано «Ошибка: http код состояния 404». Чего мне не хватает?

var fs = require('fs');
var s3 = require('s3');
var stdio = require('stdio');

var client = s3.createClient({
  s3Options: {
    accessKeyId: "access key id",
    secretAccessKey: "secret access key",
  },
});



var params = {
    localFile: "home/download",

    s3Params: {
      Bucket:  "bucketname",
      Key: "/folder1/folder2/folder3/fileName",
    },
};

var downloader = client.downloadFile(params);
downloader.on('error', function(err) {
  console.error("unable to download:", err.stack);
  //err.stack returns as "Error: http status code 404"
});
downloader.on('progress', function() {
  console.log("progress", downloader.progressAmount, downloader.progressTotal);
});
downloader.on('end', function() {
  console.log("done downloading");
});

1 Ответ

0 голосов
/ 03 июля 2018

Я отлаживаю ваш код и помещаю личный файл на S3 и получаю ту же ошибку при использовании кода, который вы упомянули выше. Проблема с инициализацией клиента s3 заключается в том, как я исправил клиента s3.

Если вы читаете документацию, они упоминают, как настроить AWS-S3 https://www.npmjs.com/package/s3#create-a-client-from-existing-awss3-object

var fs = require('fs');
var s3 = require('s3');
var stdio = require('stdio');
var AWS =require('aws-sdk')

var client1 = s3.createClient({
  maxAsyncS3: 20,     // this is the default
  s3RetryCount: 3,    // this is the default
  s3RetryDelay: 1000, // this is the default
  multipartUploadThreshold: 20971520, // this is the default (20 MB)
  multipartUploadSize: 15728640, // this is the default (15 MB)
  s3Options: {
    accessKeyId: "***********",
    secretAccessKey: "********"
  },
});




// initilize wtih s3 client
var awsS3Client = new AWS.S3(client1);
var options = {
  s3Client: awsS3Client,
  // more options available. See API docs below.
};
var client = s3.createClient(options);

var params = {
  // local directory with file name
    localFile: "./test.jpg",

    s3Params: {
      // bucket name 
      Bucket:  "cf-logs.test.com",
      // folder and file name to download
      Key: "test/Horse Racing.jpg",
    },
};

var downloader = client.downloadFile(params);
downloader.on('error', function(err) {
  console.error("unable to download:", err.stack);
  //err.stack returns as "Error: http status code 404"
});
downloader.on('progress', function() {
  console.log("progress", downloader.progressAmount, downloader.progressTotal);
});
downloader.on('end', function() {
  console.log("done downloading");
});

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...