[英]How do I upload a zip file to Amazon S3 using Javascript (Angular framework)?
Using the following code: 使用以下代码:
params = {
Bucket: 'bucket.com',
Key: zipPath
},
s3 = new AWS.S3();
params.Body = zipFile;
s3.putObject(params, function(err, data) {
if (err) {
logger.info('Upload error: ' + err);
} else {
logger.info('Uploaded: ' + String(data));
}
});
When I change the body contents to a string (ie 'Hello'), it will upload perfectly fine. 当我将正文内容更改为字符串(即“ Hello”)时,它将完美上传。 However, when I try to attach a zip file, it is not working.
但是,当我尝试附加一个zip文件时,它不起作用。 Any ideas?
有任何想法吗? I am really new to uploading files and can't seem to find any answers online.
我确实是上传文件的新手,似乎无法在线找到任何答案。
Error that I get: Upload error: Error: Cannot determine length of [object Object] 我收到的错误:上传错误:错误:无法确定[object Object]的长度
EDIT: the zip contains images. 编辑:压缩文件包含图像。
Try this: 尝试这个:
Include this in your html header: 在您的html标头中添加以下内容:
HTML file: HTML档案:
<input type="file" id="file-chooser" />
<button id="upload-button">Upload to S3</button>
<div id="results"></div>
Javascript file: Javascript文件:
<script type="text/javascript">
var bucket = new AWS.S3({params: {Bucket: 'myBucket'}});
var fileChooser = document.getElementById('file-chooser');
var button = document.getElementById('upload-button');
var results = document.getElementById('results');
button.addEventListener('click', function() {
var file = fileChooser.files[0];
if (file) {
results.innerHTML = '';
var params = {Key: file.name, ContentType: file.type, Body: file};
bucket.upload(params, function (err, data) {
results.innerHTML = err ? 'ERROR!' : 'UPLOADED.';
});
} else {
results.innerHTML = 'Nothing to upload.';
}
}, false);
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.