提问人:Dango 提问时间:2/7/2020 更新时间:2/8/2020 访问量:272
如何使用 Php AWS S3 API 创建动态键名
How Do I Create a Dynamic Keyname Using Php AWS S3 API
问:
一直在测试最新的 Php AWS S3 API,我不确定如何在用户上传新书时动态命名键名,原因是我需要能够检索 XYZ 客户上传的书。提前致谢!
<?php
require 'aws/aws-autoloader.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
//AWS S3 SHITE BELOW
$bucket = 'acmebooks';
//CREATE DYNAMIC KEYNAME??
$keyname = 'RANDOM KEYNAME';
$secret = 'FOOBAR1345';
$credentials = new Aws\Credentials\Credentials($keyname, $secret);
$s3 = new Aws\S3\S3Client([
'version' => 'latest',
'region' => 'us-east-2',
'credentials' => $credentials
]);
try {
// Upload data.
$result = $s3->putObject([
'Bucket' => $bucket,
'Key' => $keyname,
//Body' => 'Hello, world!',
'Body' => 'https://booksrun.com/image-loader/350/https:__images-na.ssl-images-amazon.com_images_I_41sYJq3nAWL.jpg',
'ACL' => 'public-read'
]);
// Print the URL to the object.
echo $result['ObjectURL'] . PHP_EOL;
print_r($result['Body']);
} catch (S3Exception $e) {
echo $e->getMessage() . PHP_EOL;
}
?>
答:
0赞
Dango
2/8/2020
#1
忽略并混淆了$keyname这是我唯一的 AWS S3“密钥”,用于放入 AWS S3 存储桶的“密钥名称”。
修复如下
<?php
require 'aws/aws-autoloader.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
//TEST FOR AWS S3
$key_input = 'jaybookcover1';
//AWS S3 SHITE BELOW
$bucket = 'acmebooks';
//UNIQUE AWS S3 KEYNAME??
$keyname = ' my unique AWS S3 key';
$secret = 'FOOBAR1345';
$credentials = new Aws\Credentials\Credentials($keyname, $secret);
$s3 = new Aws\S3\S3Client([
'version' => 'latest',
'region' => 'us-east-2',
'credentials' => $credentials
]);
try {
// Upload data.
$result = $s3->putObject([
'Bucket' => $bucket,
'Key' => $key_input,
//Body' => 'Hello, world!',
'Body' => 'https://booksrun.com/image-loader/350/https:__images-na.ssl-images-amazon.com_images_I_41sYJq3nAWL.jpg',
'ACL' => 'public-read'
]);
// Print the URL to the object.
echo $result['ObjectURL'] . PHP_EOL;
print_r($result['Body']);
} catch (S3Exception $e) {
echo $e->getMessage() . PHP_EOL;
}
?>
评论