当前位置: 首页 > 知识库问答 >
问题:

在AWS上执行“PutObject”时出错,上载失败

江坚成
2023-03-14

我已经建立了一个AWS帐户,并正在尝试将我的第一个编程输入到S3中。我用控制台创建了一个桶,并把东西放在那里。我还创建了一个子目录(myFolder)并将其公开。我创建了我的。aws/credentials文件,并尝试使用示例代码,但出现以下错误:

在上执行“PutObject”时出错https://s3.amazonaws.com/gps-photo.org/mykey.txt“AWS HTTP错误:客户端错误:<代码>放置”https://s3.amazonaws.com/gps-photo.org/mykey.txt导致403禁止响应:拒绝访问拒绝访问FC49CD(截断…)拒绝访问(客户端):拒绝访问-拒绝访问FC49CD15567FB9CD1GTYXJZZHCL YyYsuYRx4UgV9wzTCQJX6N4jMWwA39PFaDkK2B9R FZf8GVM6VvMXfLyI/4abo=

我的代码是

<?php

// Include the AWS SDK using the Composer autoloader.
require '/home/berman/vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$bucket = 'gps-photo.org';
$keyname = 'my-object-key';
// Instantiate the client.
$s3 = S3Client::factory(array(
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2006-03-01'
));
try {
    // Upload data.
    $result = $s3->putObject(array(
        'Bucket' => $bucket,
        'Key'    => "myFolder/$keyname",
        'Body'   => 'Hello, world!',
        'ACL'    => 'public-read'
    ));
    // Print the URL to the object.
    echo $result['ObjectURL'] . "\n";
} catch (S3Exception $e) {
    echo $e->getMessage() . "\n";
}

如果有人能帮我,那就太好了。谢谢--伦恩

共有3个答案

葛勇锐
2023-03-14

布莱登的方法会奏效,但很危险。用户将拥有对所有S3存储桶的完全访问权限,并能够登录到控制台。如果网站中使用的凭据被泄露,那么。。。

更安全的方法是:

  1. AWS控制台-

这样,您将拥有一个仅具有所需访问权限的用户。

陆英毅
2023-03-14

我面临着同样的问题,并找到了如下解决方案。

删除行

'ACL'=

具有列表、读取和写入的默认权限,但没有更改对象特定权限的权限(AWS策略中的PutObjectAcl)。

贲绪
2023-03-14

它看起来像我遇到的同一个问题。将Amazon S3FullAccess策略添加到您的AWS帐户。

  • 登录AWS。
  • 在服务下选择IAM。
  • 选择用户
 类似资料:
  • 我正在使用实现AWS SQS作业队列。正确处理作业(拉作业- PHP工匠队列:工作 但在Lambda环境中,使用相同的凭证,作业完成后不能删除。简而言之,拉作业- “errorType”:“Aws\Sqs\Exception\SQSExException”, “errorMessage”:“在上执行”DeleteMessage“时出错”https://sqs.ap-northeast-1.amaz

  • 我对使用AWS非常陌生,我正在学习AWS提供的使用putObject的示例https://docs.aws.amazon.com/AmazonS3/latest/dev/UploadObjSingleOpPHP.html 在这一点上,我所尝试的只是使用AWS SDK将任何对象上传到我的S3桶,就像在示例中一样,但是我得到一个错误,说400坏请求(完整输出如下)。我试图写入的桶是故意不公开的,因为我

  • 当我调用API时,我得到了一个AWS S3存储桶URL在s3 URL上,我试图通过改造上传文件,但我得到了以下错误 我正在通过PUT方法进行多部分上传。在postman上,它可以工作,但不能从Android 相关改造

  • 我只是想学习PySpark,但对以下两个RDD之间的区别感到困惑,我知道一个是类型集,一个是列表,但两者都是RDD 和 图和减函数处理代码: 我可以很容易地执行映射/减少功能对第二个rdd数据,但当我尝试执行映射或减少我得到以下错误:那么我们如何将第一个rdd转换为第二个rdd数据,或者如果有任何方法来解决以下错误请帮助 Py4JJavaError:调用z:org时出错。阿帕奇。火花应用程序编程接

  • 我正试图向本地托管在笔记本电脑上的服务器发送一个POST ajax请求,但我似乎无法获得任何信息。当我在我的站点(localhost)上单击一个按钮时,我可以看到服务器传回正确的信息,但在前端我得到了以下错误: 错误:网络错误:未能在XMLHttpRequest上执行发送:未能加载超文本传输协议://comp-ip。 它似乎每次都会触发一个错误,而不是“成功”。有人知道怎么回事吗? 编辑:我尝试过

  • 我只是从AWS开始。。。 我有一个EC2实例,它正在运行WordPress(WordPress由市场上的Bitnami图像提供支持-https://aws.amazon.com/marketplace/pp/B007IP8BKQ)。一切正常,我可以从标准HTTP访问WP安装的前端和后端。 当我将实例连接到ELB并尝试通过HTTPS访问站点时,问题就出现了。 我已经完成了使用ACM设置SSL证书的过