Загружать ресурсы в корзину digitalOcean с помощью gulp-s3 в Angular 2? - PullRequest
0 голосов
/ 28 апреля 2020

Я использую gulp-s3 библиотека

Создан gulpfile.js файл в root каталоге

Здесь код используется для загрузки папки dist

console.log('gulf');
var gulp = require('gulp');
var s3 = require('gulp-s3');
//will add to the variable now just for testing
var AWS = {
  key: 'ttvtdxxxx',
  secret: 'ttvtd',
  bucket: 'dev-static-ttvtd-ro',
  region: 'fra1',
  endpoint: 'https://fra1.digitaloceanspaces.com'
};

var options = {
  uploadPath: 'assets',
  headers: {
    'Cache-Control': 'max-age=315360000, no-transform, public',
    'x-amz-acl': 'private'
  },
    failOnError: true 
}; // It will upload the 'src' into '/remote-folder'

gulp.task('default', async function() {
  console.log("Hi! I'm Gulp default task root!");
  gulp.src('./dist/**', { 
    read: false

  }).pipe(s3(AWS, options));
  console.log('task completed!');
});

Файл и код работают, когда я запускаю команду gulp, так как я могу управлять этим параметром aws, чтобы он работал с корзиной digitalOcean. Папка dist не загружена для создания корзины и не возвращает никаких ошибок.

1 Ответ

0 голосов
/ 30 апреля 2020

В документах Digital Ocean в строке конечной точки нет https://.

gulp-s3 использует aws-sdk под капотом (на самом деле довольно старая версия ...)

Лично у меня не было большого успеха с gulp-s3, но gulp-s3-upload работал лучше для меня, так как он более многофункциональный и, кажется, обновляется чаще в данный момент.

Вот пример:

const s3upload = require('gulp-s3-upload')();

const s3Config = {
    endpoint: 'fra1.digitaloceanspaces.com', // note no https://
    region: 'fra1',
    accessKeyId: process.env.S3_ACCESS_KEY,
    secretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
};

gulp.task('upload', () => gulp.src('dist/**')
    .pipe(s3upload({
        Bucket: process.env.S3_BUCKET,
        ACL: 'private', 
        Metadata: {
            "uploadedVia": "gulp-s3-upload"
        }
    }, s3Config)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...