Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
C# 不允许使用AWS 405方法_C#_Php_Amazon Web Services_Amazon S3 - Fatal编程技术网

C# 不允许使用AWS 405方法

C# 不允许使用AWS 405方法,c#,php,amazon-web-services,amazon-s3,C#,Php,Amazon Web Services,Amazon S3,我已经用这个把头撞到墙上好几个小时了,我似乎不知道出了什么问题 基本上我有一个S3存储桶,我正试图从Unity3D上传一个简单的文本(.txt)文件到它。要下载的C#脚本和PHP脚本取自 因此,我将PHP脚本放在bucket中,获取该PHP脚本的URL并从C#代码中调用它: PHP脚本: <?php if(isset($_FILES['theFile'])) { print("Success! "); print("tmpName: " . $_FILE

我已经用这个把头撞到墙上好几个小时了,我似乎不知道出了什么问题

基本上我有一个S3存储桶,我正试图从Unity3D上传一个简单的文本(.txt)文件到它。要下载的C#脚本和PHP脚本取自

因此,我将PHP脚本放在bucket中,获取该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!");
   }
?>
我收到错误“上传时出错:405方法不允许”

我尝试更改权限设置、区域设置等,但没有效果

我读过,它提到要改变终点,但我似乎做不到,没有办法编辑它

如果我在不同的服务器上尝试相同的PHP/C#脚本,效果会很好。。。但不是在S3桶里

我尝试了另一个PHP/C#脚本,得到了相同的结果,在S3 bucket上出现了相同的错误,但在不同的服务器上成功了

下面是我尝试的另一个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";
}

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

我有点困惑。你说PHP在S3中,对吗?这是否意味着您正试图在S3中执行PHP文件?您的PHP服务器从哪里运行?是的,我正在尝试从S3存储桶运行脚本。这是我第一次做PHP的东西,所以请原谅我的无知,如果这不是你应该做的。你必须从某个地方开始!S3是一种用于保存静态文件的存储服务。PHP是一种动态服务器端脚本语言。为了运行PHP,您需要一个运行PHP的服务器和一个Web服务器(通常是初学者使用的Apache)。查看LAMP堆栈(Linux、Apache、MySQL和PHP),开始了解从哪里开始。还有谷歌
安装php
,了解更多信息。不幸的是,S3不能为您执行代码,所以您需要学习如何设置服务器来为您执行。谢谢您的提示。是否有其他方法(除了设置php)可以从存储服务(如S3)下载文件(通过代码)?从下载?还是上传到?你的问题是关于上传,而不是下载。你是说右键单击|属性|权限?我添加了“每个人”并提供了测试的完全访问权限,但没有帮助。请通读我链接的文档。405方法不允许意味着您没有权限发布到该bucket中。当您修改权限面板的该部分时,底部有一个按钮,上面写着
addbucket policy
。这就是您希望为允许的方法添加策略定义的地方。所有这些都在上面链接的文档中。
<?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";
}