【发布时间】:2017-04-12 00:39:38
【问题描述】:
我正在尝试通过 Ajax 将文件从我的 Wordpress 应用程序上传到 S3 存储桶: 不知何故,我没有得到答案,并且在应用“putObject”方法时脚本失败并出现 500 错误。
app/ajax.php
require_once 's3/start.php'
//wp_die(var_dump($s3)); Seems to be fine
$upload = $s3->putObject([
'Bucket' => $config['s3']['bucket'],
'Key' => 'video,
'Body' => fopen( $_FILES['file']['tmp_name'], 'r' ),
'ACL' => 'public-read',
]);
if ($upload) {
wp_die('Uploaded');
} else {
wp_die('Upload Error');
}
app/s3/start.php
use Aws\S3\S3Client;
require 'aws/aws-autoloader.php';
$config = require('config.php');
$s3 = new S3Client([
'key' => $config['s3']['key'],
'secret' => $config['s3']['secret'],
'region' => $config['s3']['region'],
'version' => 'latest',
]);
app/s3/aws
Latest version of the official AWS SDK for PHP
解决方案 app/start.php 中的凭据在初始化 $s3 对象时未正确分配。应该是这样的
$s3 = S3Client::factory([
'region' => $config['s3']['region'],
'version' => 'latest',
'credentials' => [
'key' => $config['s3']['key'],
'secret' => $config['s3']['secret']
]
]);
【问题讨论】:
标签: php ajax wordpress amazon-web-services amazon-s3