Javascript fs节点的源
我目前正在用HTML元素进行一些编程。在代码中,我将文件上载到s3存储桶。为此,我使用了aws sdk节点,该节点的源代码如下:Javascript fs节点的源,javascript,node.js,amazon-web-services,amazon-s3,fs,Javascript,Node.js,Amazon Web Services,Amazon S3,Fs,我目前正在用HTML元素进行一些编程。在代码中,我将文件上载到s3存储桶。为此,我使用了aws sdk节点,该节点的源代码如下: <script src="https://sdk.amazonaws.com/js/aws-sdk-2.1.24.min.js"></script> 但是,我还需要使用fs节点,但是我不知道使用该节点的源 这是我要使用的代码: 是否有人知道此节点的源url或将使用此代码的类似url。多谢各位 或者,将此代码更改为多部分
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.1.24.min.js"></script>
但是,我还需要使用fs节点,但是我不知道使用该节点的源
这是我要使用的代码:
是否有人知道此节点的源url或将使用此代码的类似url。多谢各位
或者,将此代码更改为多部分上载的方法也同样好。此代码在HTML元素中工作,用于发送小于6MB的文件。(链接和ID是文件名标识,不相关)
window.onmessage=(事件)=>{
if(事件数据){
如果(事件数据[5]=“开始”){
开始(事件数据[0]、事件数据[1]、事件数据[2]、事件数据[3]、事件数据[4])
}否则{
document.getElementById(“GoogleSheetsDocs”).innerHTML=event.data;
}
}
};
函数sendLoadMessage(){
window.parent.postMessage(“LoadOk1”,“*”);
}
功能(msg){
window.parent.postMessage(msg,“*”);
}
函数启动(bucketName1、bucketRegion1、IdentityPoolId1、链接、ID){
var bucketName=bucketName1;
var bucketRegion=bucketRegion 1;
var IdentityPoolId=IdentityPoolId1;
AWS.config.update({
地区:bucketRegion,
凭证:新AWS.CognitoIdentityCredentials({
IdentityPoolId:IdentityPoolId
})
});
var s3=新的AWS.s3({
apiVersion:‘2006-03-01’,
参数:{Bucket:bucketName}
});
s3upload(s3,bucketRegion,bucketName1,链接,ID)
}
提交
函数s3upload(s3,bucketRegion,bucketName1,链接,ID){
var files=document.getElementById('fileUpload').files;
如果(文件){
var file=files[0];
var n=file.name.lastIndexOf(“.”);
var res=file.name.substring(n,file.name.length);
var fileName=link+res;
var filePath='Projects/'+ID+'/Documents/'+fileName;
var fileUrl='https:s3/'+bucketRegion+'.amazonaws.com/'+bucketName1+'/'+filePath;
s3.上传({
键:filePath,
正文:文件,
ACL:“公共读取”
},函数(错误,数据){
如果(错误){
拒绝(“错误”);
}
警报('已成功上载!');
}).on('httpUploadProgress',函数(progress){
var upload=parseInt((progress.loaded*100)/progress.total);
$(“进度”).attr('value',上传);
});
}
};
fs
模块是一个内置的Node.js。它不是用JavaScript编写的,在Node.js之外不可用,并且执行浏览器中提供给js的API无法实现的操作(例如读取和写入本地文件!)。fs
模块是Node.js内置模块。它不是用JavaScript编写的,在Node.js之外不可用,并且执行浏览器中提供给js的API无法实现的操作(例如读取和写入本地文件!)。您无法从浏览器访问Node.js API。Node.js是与web浏览器不同的执行环境,因此具有不同的功能。出于安全原因,web浏览器对您可以执行的操作有限制
我从你的评论中看到了
我所需要的只是能够将多部分(或大型)上传到s3存储桶
在这种情况下,您可以在服务器上生成一个预先签名的S3URL,然后在允许客户端上传时将其发送给客户端。预先签名的URL在特定的持续时间内有效。您应该只在服务器端生成它们,因为您需要提供IAM凭据来创建URL
查看本教程了解更多信息:您无法从浏览器访问Node.js API。Node.js是与web浏览器不同的执行环境,因此具有不同的功能。出于安全原因,web浏览器对您可以执行的操作有限制 我从你的评论中看到了 我所需要的只是能够将多部分(或大型)上传到s3存储桶 在这种情况下,您可以在服务器上生成一个预先签名的S3URL,然后在允许客户端上传时将其发送给客户端。预先签名的URL在特定的持续时间内有效。您应该只在服务器端生成它们,因为您需要提供IAM凭据来创建URL
查看本教程了解更多信息:谢谢。我想有人提到了一种叫做“FileReader”的东西,并将我与此联系起来:你知道我如何使用它吗?或者我可以通过任何其他方式让代码在HTMl元素中工作。我所需要的就是能够将多部分(或大型)上传到s3存储桶。谢谢。我想有人提到了一种叫做“FileReader”的东西,并将我与此联系起来:你知道我如何使用它吗?或者我可以通过任何其他方式让代码在HTMl元素中工作。所有我需要的是能够做多部分(或大)上传到s3桶。谢谢你的链接,我已经看过那里。该代码需要aws sdk和express。您知道我是否可以在html中使用express作为源代码吗?@Anralore否您需要在node.js中运行express。你需要一个服务器以某种方式与s3安全交互。我正在写一个小的wix网站。我只能访问wixjavascript代码和HTML元素。我已经在HTML元素中有了工作代码,可以将小于6MB的文件上传到s3存储桶,但我也需要发送更大文件的代码;比如多部分上传或托管上传之类的。我可以展示用于发送小文件的代码,如果这有什么帮助的话?或者,一种让用户上传的文件从HTML元素进入WixJavaScript的方法也可以,因为我可以使用那里的节点,但是我
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.1.24.min.js">
</script>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js">
</script>
<script type="text/javascript">
window.onmessage = (event) => {
if (event.data) {
if (event.data[5] === "Start"){
Start(event.data[0], event.data[1], event.data[2], event.data[3], event.data[4])
} else{
document.getElementById("GoogleSheetsDocs").innerHTML = event.data;
}
}
};
function sendLoadMessage () {
window.parent.postMessage("LoadOk1", "*");
}
function postMsg(msg) {
window.parent.postMessage(msg, "*");
}
function Start(bucketName1, bucketRegion1, IdentityPoolId1, link, ID) {
var bucketName = bucketName1;
var bucketRegion = bucketRegion1;
var IdentityPoolId = IdentityPoolId1;
AWS.config.update({
region: bucketRegion,
credentials: new AWS.CognitoIdentityCredentials({
IdentityPoolId: IdentityPoolId
})
});
var s3 = new AWS.S3({
apiVersion: '2006-03-01',
params: {Bucket: bucketName}
});
s3upload(s3, bucketRegion, bucketName1, link, ID)
}
</script>
<div>
<input type="file" id="fileUpload">
</div>
<div>
<button onclick="Start('EXAMPLEBUCKET', 'eu-west-2', 'eu-west-2:EXAMPLECODE', 'link', 'ID')">Submit</button>
</div>
<progress max="100" value="0" id="Process1" ></progress>
<script type="text/javascript">
function s3upload(s3, bucketRegion, bucketName1, link, ID) {
var files = document.getElementById('fileUpload').files;
if (files) {
var file = files[0];
var n = file.name.lastIndexOf(".");
var res = file.name.substring(n, file.name.length);
var fileName = link + res;
var filePath = 'Projects/' + ID + '/Documents/' + fileName;
var fileUrl = 'https:s3//' + bucketRegion + '.amazonaws.com/' + bucketName1 + '/' + filePath;
s3.upload({
Key: filePath,
Body: file,
ACL: 'public-read'
}, function(err, data) {
if(err) {
reject('error');
}
alert('Successfully Uploaded!');
}).on('httpUploadProgress', function (progress) {
var uploaded = parseInt((progress.loaded * 100) / progress.total);
$("progress").attr('value', uploaded);
});
}
};
</script>
<body onload="sendLoadMessage ();" style="background-color:white;">
<div id="GoogleSheetsDocs"></div>
</body>