在 Angular 2 中使用 gulp-s3 将资产上传到 digitalOcean 存储桶?

Uploading assets to digitalOcean bucket using gulp-s3 in Angular 2?

我正在使用 gulp-s3

在根目录中创建了 gulpfile.js 个文件

这里是上传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 文件夹没有上传到do bucket 并且return 没有任何错误。

Digital Ocean docs 端点字符串中没有 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)));