File upload 将文件直接保存到AmazonS3时出现上载HTTP错误(403)
以下是我的代码,可以直接将文件上传到:File upload 将文件直接保存到AmazonS3时出现上载HTTP错误(403),file-upload,amazon-s3,uploadify,http-status-code-403,File Upload,Amazon S3,Uploadify,Http Status Code 403,以下是我的代码,可以直接将文件上传到: $(函数(){ $('#文件上传')。上传({ “requeueErrors”:true, 'fileDataName':'file', 'method':'post', 'formData':{ 'key':'uploads/${filename}', 'AWSAccessKeyId':'xxxxxxxxxxxxxxxxxxxx', ‘bucket’:‘mybucket’, 'acl':'authenticated read', “政策”:“XXXXX
$(函数(){
$('#文件上传')。上传({
“requeueErrors”:true,
'fileDataName':'file',
'method':'post',
'formData':{
'key':'uploads/${filename}',
'AWSAccessKeyId':'xxxxxxxxxxxxxxxxxxxx',
‘bucket’:‘mybucket’,
'acl':'authenticated read',
“政策”:“XXXXXXXXXXXXXX”,
“签名”:“XXXXXXXXXXXX”,
“内容类型”:“文本”
},
'fileObjName':'file',
'cancelImg':'cancel.png',
“上传者”:http://mybucket.s3.amazonaws.com',
'swf':'uploadify.swf',
“自动”:false,
“文件类型”:“文本”,
“onUploadStart”:函数(文件)
{
console.log('正在尝试上载:'+file.name);
},
“onUploadSuccess”:函数(文件、数据、响应)
{
警报('文件保存到:'+数据);
}
});
});
当我尝试将文件上载到时,出现以下错误:HTTP错误(403)
请帮助解决代码中的问题。我也在使用uploadify在Amazon S3上上传文件,我建议您尝试实施我的策略
首先我使用uploadify在我的服务器上上传文件,然后将它们上传到Amazon S3,上传后我从服务器上删除上传的文件,这是一个简单的方法编辑:看起来我使用的是uploadify的旧版本,不确定我的答案现在有多准确。将很快更新 我正在为另一个问题寻求帮助,但我想我会停下来帮你一点 我看到您在uploader参数中设置了amazon url:
'uploader' : 'http://mybucket.s3.amazonaws.com',
'swf' : 'uploadify.swf',
我有一些不同的东西可以很好地工作,我在其他示例中也看到uploader链接到uploadify.swf,脚本链接到您希望上传的路径
像这样:
'uploader' : '/resources/js/uploadify/uploadify.swf',
'script' : '<?php echo $uploadPath; ?>',
下面是一个完整的例子,说明我所拥有的和有效的方法:
$('#file_mainfile').uploadify({
'uploader' : '<?php echo WPDEPOSIT_URL; ?>/resources/js/uploadify/uploadify.swf',
'script' : '<?php echo $uploadPath; ?>',
'cancelImg' : '<?php echo WPDEPOSIT_URL; ?>/resources/images/cancel.png',
'folder' : '<?php echo $fileFolder; ?>',
'auto' : true,
'fileExt' : '*.zip',
'buttonText': '<?php _e('Upload .zip', WPD_SHOPPER_NAME); ?>',
'method' : 'post',
'fileDataName' : 'file',
'auto' : 'true',
'scriptData' : {
"AWSAccessKeyId" : "<?php echo $amazonClass->AWS_ACCESS_KEY; ?>",
"key" : "${filename}",
"acl" : "public-read",
"policy" : "<?php echo $policy; ?>",
"signature" : "<?php echo $signature; ?>",
"success_action_status" : "201",
"key" : encodeURIComponent(encodeURIComponent("<?php echo $folder; ?>${filename}")),
"fileext" : encodeURIComponent(encodeURIComponent("")),
"Filename" : encodeURIComponent(encodeURIComponent(""))
},
'onError' : function (event,ID,fileObj, response) {
},
'onComplete': function(event, ID, fileObj, response, data) {
var filePath = $(response).find("location").text();
displayMessage('success', 'file_mainfile', '<?php _e('Successfully uploaded to Amazon S3 server.', WPD_QA_NAME); ?>', filePath);
window.wpds_thumbnail = filePath;
}
});
$('#file_mainfile')。上传({
“uploader”:“/resources/js/uploadify/uploadify.swf”,
“脚本”:“,
“cancelImg”:“/resources/images/cancel.png”,
'文件夹':'',
“自动”:正确,
“fileExt”:“*.zip”,
“按钮文本”:“,
'method':'post',
'fileDataName':'file',
'auto':'true',
“脚本数据”:{
“AWSAccessKeyId”:“,
“键”:“${filename}”,
“acl”:“公共读取”,
“政策”:“政策”,
“签字”:“,
“成功行动状态”:“201”,
“键”:encodeURIComponent(encodeURIComponent(${filename})),
“fileext”:encodeURIComponent(encodeURIComponent(“”),
“文件名”:encodeURIComponent(encodeURIComponent(“”))
},
“onError”:函数(事件、ID、fileObj、响应){
},
“onComplete”:函数(事件、ID、fileObj、响应、数据){
var filePath=$(响应).find(“位置”).text();
显示消息('success','file\u mainfile','',filePath);
window.wpds\u缩略图=文件路径;
}
});
我将所有内容上传到一个单独的文件夹中,这就是为什么您会在代码中看到一个文件夹变量。我遇到了同样的问题,并使用以下方法解决
谢谢赛义德的提示。不知怎的,你提到的东西不是我的要求(我的要求是直接上传到S3)。谢谢你的回复。希望它能工作,不知何故我使用ColdFusion而不是PHP,不知何故我也熟悉PHP。目前我正在执行其他重要的开发任务。我将很快尝试你的考试,并让你知道结果。:)是的,关于将文件上载到S3的
脚本
您是绝对正确的,但我认为这在Uploadify的旧版本中是受支持的,请查看Uploadify的文档,您再也找不到脚本
选项:。如果可能的话,只要你有时间这样做,请发送我的uploadify版本下载(正是你正在使用的)。愿它有帮助。再次感谢,我感谢你的帮助。
$uploadPath = 'http://s3.amazonaws.com/' . $bucket;
$('#file_mainfile').uploadify({
'uploader' : '<?php echo WPDEPOSIT_URL; ?>/resources/js/uploadify/uploadify.swf',
'script' : '<?php echo $uploadPath; ?>',
'cancelImg' : '<?php echo WPDEPOSIT_URL; ?>/resources/images/cancel.png',
'folder' : '<?php echo $fileFolder; ?>',
'auto' : true,
'fileExt' : '*.zip',
'buttonText': '<?php _e('Upload .zip', WPD_SHOPPER_NAME); ?>',
'method' : 'post',
'fileDataName' : 'file',
'auto' : 'true',
'scriptData' : {
"AWSAccessKeyId" : "<?php echo $amazonClass->AWS_ACCESS_KEY; ?>",
"key" : "${filename}",
"acl" : "public-read",
"policy" : "<?php echo $policy; ?>",
"signature" : "<?php echo $signature; ?>",
"success_action_status" : "201",
"key" : encodeURIComponent(encodeURIComponent("<?php echo $folder; ?>${filename}")),
"fileext" : encodeURIComponent(encodeURIComponent("")),
"Filename" : encodeURIComponent(encodeURIComponent(""))
},
'onError' : function (event,ID,fileObj, response) {
},
'onComplete': function(event, ID, fileObj, response, data) {
var filePath = $(response).find("location").text();
displayMessage('success', 'file_mainfile', '<?php _e('Successfully uploaded to Amazon S3 server.', WPD_QA_NAME); ?>', filePath);
window.wpds_thumbnail = filePath;
}
});