我刚刚配置了Amazon Cloud Front发行版,并将其连接到现有的Amazon S3存储桶。话虽如此,这个桶可容纳10GB到40GB的视频文件,我想使用CF来加快上传过程(也是下载,但在这种情况下上传更为重要)。
最后,我创建了一个简单的JS脚本来将文件推送到连接到CF的这个桶:
var AWS_ACCESS_KEY_ID = "111",
AWS_SECRET_ACCESS_KEY = "222",
S3_BUCKET = "videos.company.com",
S3_KEY = "remote_filename.mkv",
fs = require('fs'),
AWS = require('aws-sdk');
AWS.config.update({accessKeyId: AWS_ACCESS_KEY_ID, secretAccessKey: AWS_SECRET_ACCESS_KEY});
var startDate = new Date().toUTCString();
var fileStream = fs.createReadStream(__dirname + '/test.mkv');
fileStream.on('error', function (err) {
if (err) { throw err; }
});
fileStream.on('open', function () {
var s3 = new AWS.S3();
s3.putObject({
Bucket: S3_BUCKET,
Key: S3_KEY,
Body: fileStream
}, function(err) {
if (err) {
console.log(err, err.stack);
} else {
console.log('Uploaded file to ' + S3_KEY + ' at ' + new Date().toUTCString());
console.log("Start time: " + startDate + ", end time: " + new Date().toUTCString());
}
}).on('httpUploadProgress', function(progress) {
console.log('Upload', progress.loaded, 'of' , progress.total, 'bytes' + " --> " + ((progress.loaded*100)/progress.total).toFixed(2) + "%");
});
});
运行脚本后,我没有注意到任何速度变化(上传有和没有CF分发)......实际上两种情况的上传时间完全相同。但是,在阅读了一些论坛之后,我看到有人在谈论使用CF网址发布POST请求。
如何直接将文件从我的服务器上传到CF?
谢谢!