我无法将代码粘贴到webIDE控制台中.除了控制台之外,复制粘贴在IDE周围工作.有没有办法来解决这个问题?请帮忙,这太烦人了!
我正在尝试将文件上传到我的Amazon S3 Bucket.S3和亚马逊成立.这是来自亚马逊的错误消息:
冲突的查询字符串参数:acl,policy
使用Node.js的Crypto.js对策略和签名进行编码
var crypto=Npm.require("crypto");
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用Meteor HTTP.post方法构建POST请求.这也可能是错误的.
var BucketName="mybucket";
var AWSAccessKeyId="MY_ACCES_KEY";
var AWSSecretKey="MY_SECRET_KEY";
//create policy
var POLICY_JSON={
"expiration": "2009-01-01T00:00:00Z",
"conditions": [
{"bucket": BucketName},
["starts-with", "$key", "uploads/"],
{"acl": 'public-read'},
["starts-with", "$Content-Type", ""],
["content-length-range", 0, 1048576],
]
}
var policyBase64=encodePolicy(POLICY_JSON);
//create signature
var SIGNATURE = encodeSignature(policyBase64,AWSSecretKey);
console.log('signature: ', SIGNATURE);
Run Code Online (Sandbox Code Playgroud)
这是我在Meteor上使用的POST请求:
//Send data----------
var options={
"params":{
"key":file.name,
'AWSAccessKeyId':AWSAccessKeyId,
'acl':'public-read',
'policy':policyBase64,
'signature':SIGNATURE,
'Content-Type':file.type,
'file':file,
"enctype":"multipart/form-data",
}
}
HTTP.call('POST','https://'+BucketName+'.s3.amazonaws.com/',options,function(error,result){
if(error){
console.log("and HTTP ERROR:",error);
}else{
console.log("result:",result);
}
});
Run Code Online (Sandbox Code Playgroud)
她正在对政策和签名进行编码:
encodePolicy=function(jsonPolicy){
// …Run Code Online (Sandbox Code Playgroud) 我试图用流星建立一个图像上传到亚马逊S3.感谢Hubert OG,我发现AWS-SDK让事情变得简单.
我的问题是上传的数据似乎已损坏.当我下载文件时,文件可能已损坏.可能是这样的.
将数据插入到图像src中,确实有效,并且图像的预览显示为预期,因此原始文件以及可能的数据是正确的.
我正在使用FileReader加载文件,而不是将结果数据传递给AWS-SDK putObject方法.
var file=template.find('[type=file]').files[0];
var key="uploads/"+file.name;
var reader=new FileReader();
reader.onload=function(event){
var data=event.target.result;
template.find('img').src=data;
Meteor.call("upload_to_s3",file,"uploads",reader.result);
};
reader.readAsDataURL(file);
Run Code Online (Sandbox Code Playgroud)
这是服务器上的方法:
"upload_to_s3":function(file,folder,data){
s3 = new AWS.S3({endpoint:ep});
s3.putObject(
{
Bucket: "myportfoliositebucket",
ACL:'public-read',
Key: folder+"/"+file.name,
ContentType: file.type,
Body:data
},
function(err, data) {
if(err){
console.log('upload error:',err);
}else{
console.log('upload was succesfull',data);
}
}
);
}
Run Code Online (Sandbox Code Playgroud) 有没有办法从CATransform3D转换为GLKMatrix4,还是我总是需要手动将它们从值转换为值?我猜投射会更快.