php - AWS上执行 "PutObject"出错,上传失败

标签 php amazon-web-services amazon-s3

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

Error executing "PutObject" on "https://s3.amazonaws.com/gps-photo.org/mykey.txt"; AWS HTTP error: Client error: PUT https://s3.amazonaws.com/gps-photo.org/mykey.txt resulted in a 403 Forbidden response: AccessDeniedAccess DeniedFC49CD (truncated...) AccessDenied (client): Access Denied - AccessDeniedAccess DeniedFC49CD15567FB9CD1GTYxjzzzhcL+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";
}

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

最佳答案

看来我遇到了同样的问题。将 AmazonS3FullAccess 策略添加到您的 AWS 账户。

  • 登录 AWS。
  • 在服务下选择 IAM。
  • 选择用户 > [您的用户]
  • 打开权限标签
  • 将 AmazonS3FullAccess 策略附加到帐户

关于php - AWS上执行 "PutObject"出错,上传失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34455410/

相关文章:

php - Zf2 如何使用过滤器类传递参数?

java - Maven部署打包并上传到AWS-Lambda

node.js - 我可以在不显式调用 headObject 的情况下从 S3 对象流获取 Content-Type 吗?

amazon-web-services - 为 Amazon 的 EC2 实例生成 pem 文件

Amazon S3 上的 URL 指纹缓存

php - 使用 PDO 和 MySQL 的 SELECT COUNT(*) 的最佳替代方案

javascript - jquery中仅自动刷新页面的特定<div>元素

php - 性能:Web 服务器中的大量图像与大量目录

amazon-web-services - Amazon Glacier 可以镜像 Amazon S3 存储桶吗?

java - Dynamo DB 中的自动递增计数器