Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript不工作时直接上传到S3 s3 //请参阅配置部分以在SDK中配置凭据 AWS.config.credentials=新的AWS.credentials({ accessKeyId:“我的访问密钥”, secretAccessKey:“我的秘密密钥” }); //配置您的区域 AWS.config.region='us-west-2'; 上传到S3 var bucket=new AWS.S3({params:{bucket:'MY bucket NAME'}}); var fileChooser=document.getElementById('file-chooser'); var-button=document.getElementById('upload-button'); var results=document.getElementById('results'); addEventListener('click',function(){ var file=fileChooser.files[0]; 如果(文件){ results.innerHTML=''; var params={Key:file.name,ContentType:file.type,Body:file}; bucket.upload(参数、函数(错误、数据){ results.innerHTML=err?'ERROR!':'UPLOADED'; }); }否则{ results.innerHTML='无需上传'; } },假);_Javascript_Node.js_Amazon Web Services_Amazon Ec2_Amazon S3 - Fatal编程技术网

JavaScript不工作时直接上传到S3 s3 //请参阅配置部分以在SDK中配置凭据 AWS.config.credentials=新的AWS.credentials({ accessKeyId:“我的访问密钥”, secretAccessKey:“我的秘密密钥” }); //配置您的区域 AWS.config.region='us-west-2'; 上传到S3 var bucket=new AWS.S3({params:{bucket:'MY bucket NAME'}}); var fileChooser=document.getElementById('file-chooser'); var-button=document.getElementById('upload-button'); var results=document.getElementById('results'); addEventListener('click',function(){ var file=fileChooser.files[0]; 如果(文件){ results.innerHTML=''; var params={Key:file.name,ContentType:file.type,Body:file}; bucket.upload(参数、函数(错误、数据){ results.innerHTML=err?'ERROR!':'UPLOADED'; }); }否则{ results.innerHTML='无需上传'; } },假);

JavaScript不工作时直接上传到S3 s3 //请参阅配置部分以在SDK中配置凭据 AWS.config.credentials=新的AWS.credentials({ accessKeyId:“我的访问密钥”, secretAccessKey:“我的秘密密钥” }); //配置您的区域 AWS.config.region='us-west-2'; 上传到S3 var bucket=new AWS.S3({params:{bucket:'MY bucket NAME'}}); var fileChooser=document.getElementById('file-chooser'); var-button=document.getElementById('upload-button'); var results=document.getElementById('results'); addEventListener('click',function(){ var file=fileChooser.files[0]; 如果(文件){ results.innerHTML=''; var params={Key:file.name,ContentType:file.type,Body:file}; bucket.upload(参数、函数(错误、数据){ results.innerHTML=err?'ERROR!':'UPLOADED'; }); }否则{ results.innerHTML='无需上传'; } },假);,javascript,node.js,amazon-web-services,amazon-ec2,amazon-s3,Javascript,Node.js,Amazon Web Services,Amazon Ec2,Amazon S3,上面是我正在使用的代码,但当我选择一个文件并上载它时,我在控制台上会出现以下错误: MY_BUCKET_NAME.s3-us-west-2.amazonaws.com/burger.jpg:1 PUT 403(禁止) 奇怪的是。。。我以前正确地使用过S3,我通常会注意到在bucket中创建了某种“嵌套结构”,在上面,403出现在我的_bucket_NAME.S3-us-west-2.amazonaws.com/burger.jpg中,这不是我习惯的嵌套结构 我不知道怎么了 这是我的CORS配置:

上面是我正在使用的代码,但当我选择一个文件并上载它时,我在控制台上会出现以下错误:

MY_BUCKET_NAME.s3-us-west-2.amazonaws.com/burger.jpg:1 PUT 403(禁止)

奇怪的是。。。我以前正确地使用过S3,我通常会注意到在bucket中创建了某种“嵌套结构”,在上面,403出现在我的_bucket_NAME.S3-us-west-2.amazonaws.com/burger.jpg中,这不是我习惯的嵌套结构

我不知道怎么了

这是我的CORS配置:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>s3</title>

  <script src="https://sdk.amazonaws.com/js/aws-sdk-2.1.34.min.js"></script>
<script type="text/javascript">
  // See the Configuring section to configure credentials in the SDK
  AWS.config.credentials = new AWS.Credentials({
    accessKeyId: 'MY ACCESS KEY', 
    secretAccessKey: 'MY SECRET KEY'
  });
  // Configure your region
  AWS.config.region = 'us-west-2';
</script>
</head>
<body>

<input type="file" id="file-chooser" /> 
<button id="upload-button">Upload to S3</button>
<div id="results"></div>

<script type="text/javascript">
  var bucket = new AWS.S3({params: {Bucket: 'MY BUCKET NAME'}});

  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>

</body>
</html>

*
得到
邮递
放
3000
埃塔格
*

我的秘密访问密钥缺少4个字符。

是否已打开存储桶日志记录?另外,您是否测试了bucket策略?您可以使用具有相同键的CLI并确保其正常工作。此bucket配置在我正在使用的Rails应用程序上正常工作,因此我知道上述方法正常工作。我要试试桶式伐木
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <ExposeHeader>ETag</ExposeHeader>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>