繁体   English   中英

不允许使用AWS 405方法

[英]AWS 405 Method not allowed

我已经用这个把我的头撞在墙上好几个小时了,但我似乎无法弄清楚出了什么问题。

基本上,我有一个S3存储桶,我正尝试从Unity3D向其中上传一个简单的文本(.txt)文件。 此处获取要下载的C#脚本和PHP脚本

因此,我将PHP脚本放入了存储桶本身,获取了该php脚本的URL,然后从C#代码进行调用:

PHP脚本:

<?php
   if(isset($_FILES['theFile']))
   {
      print("Success! ");
      print("tmpName: " . $_FILES['theFile']['tmp_name'] . " ");
      print("size: " . $_FILES['theFile']['size'] . " ");
      print("mime: " . $_FILES['theFile']['type'] . " ");
      print("name: " . $_FILES['theFile']['name'] . " ");


   move_uploaded_file($_FILES['theFile']['tmp_name'], "../images/" . $_FILES['theFile']['name']);

   } else
   {
      print("Failed!");
   }
?>

C#:

 WWWForm postForm = new WWWForm();
 postForm.AddBinaryData("theFile", bytes, "TestFile", "text/plain");
 WWW upload = new WWW(phpScriptURL, postForm);        
 yield return upload;
 if (upload.error == null)
     Debug.Log("upload done :" + upload.text);
 else
     Debug.Log("Error during upload: " + upload.error);

我收到错误“上传期间出错:405方法不允许”

我尝试更改权限设置,区域设置等,但无济于事。

我读了这个答案 ,它提到要更改终点,但我似乎无法做到这一点,无法对其进行编辑。

如果我在不同的服务器上尝试相同的PHP / C#脚本,则可以正常工作……但不能在S3存储桶中使用。

我尝试了另一个PHP / C#脚本,并在S3存储桶上获得了相同的结果,相同的错误,但在另一台服务器上获得了成功。

这是我尝试过的其他PHP脚本:

<?php
$data = file_get_contents('php://input');
try {
    $result = file_put_contents("save-bytes.txt", $data, FILE_APPEND);
} catch (Exception $e) {
    echo $e->getMessage();
    die();
}
if ($result !== false)
{
    echo "Saved " . $result . " bytes";
} else {
    echo "Data is not saved";
}

(与此脚本一起使用的C#代码与以前发布的C#代码具有相似的功能)

感谢您的任何帮助

默认情况下,S3存储桶被锁定为私有。 如果要将文件放入存储桶中,则必须编辑访问策略。 有关S3存储桶策略的信息, 请查看docs

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM