gpt4 book ai didi

php - 使用 PHP SDK 在 Amazon S3 上上传文件

转载 作者:可可西里 更新时间:2023-11-01 13:41:24 25 4
gpt4 key购买 nike

我正在尝试通过他们的 PHP SDK 在我的亚马逊 S3 上上传图片。所以我做了一个小脚本来做到这一点。但是,我的脚本不起作用,我的异常也没有向我发送任何错误消息。

我是 AWS 的新手,感谢您的帮助。

代码如下:

配置.php

<?php 

return array(
'includes' => array('_aws'),
'services' => array(
'default_settings' => array(
'params' => array(
'key' => 'PUBLICKEY',
'secret' => 'PRIVATEKEY',
'region' => 'eu-west-1'
)
)
)
);

?>

索引.php

 <?php


//Installing AWS SDK via phar
require 'aws.phar';

use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;

$bucket = 'infact';
$keyname = 'myImage';

// $filepath should be absolute path to a file on disk
$filepath = 'image.jpg';

// Instantiate the client.
$s3 = S3Client::factory('config.php');

// Upload a file.
try {

$result = $s3->putObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'SourceFile' => $filePath,
'ContentType' => 'text/plain',
'ACL' => 'public-read',
'StorageClass' => 'REDUCED_REDUNDANCY'
));

// Print the URL to the object.
echo $result['ObjectURL'] . "\n";
} catch (S3Exception $e) {
echo $e->getMessage() . "\n";
}

?>

编辑:我现在正在使用这段代码,但它仍然无法正常工作。我什至没有错误或异常消息。

    <?php

require 'aws.phar';

use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;

$bucket = 'infactr';
$keyname = 'sample';
// $filepath should be absolute path to a file on disk
$filepath = 'image.jpg';

// Instantiate the client.
$s3 = S3Client::factory(array(
'key' => 'key',
'secret' => 'privatekey',
'region' => 'eu-west-1'

));

try {
// Upload data.
$result = $s3->putObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'SourceFile' => $filePath,
'ACL' => 'public-read',
'ContentType' => 'image/jpeg'
));

// Print the URL to the object.
echo $result['ObjectURL'] . "\n";
} catch (S3Exception $e) {
echo $e->getMessage() . "\n";
}

?>

最佳答案

尝试这样的事情(来自 AWS docs ):

<?php

require 'aws.phar';

use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;

$bucket = '<your bucket name>';
$keyname = 'sample';
// $filepath should be absolute path to a file on disk
$filepath = '/path/to/image.jpg';

// Instantiate the client.
$s3 = S3Client::factory(array(
'key' => 'your AWS access key',
'secret' => 'your AWS secret access key'
));

try {
// Upload data.
$result = $s3->putObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'SourceFile' => $filepath,
'ACL' => 'public-read'
));



// Print the URL to the object.
echo $result['ObjectURL'] . "\n";
} catch (S3Exception $e) {
echo $e->getMessage() . "\n";
}

?>

只要您拥有正确的凭据,它就可以正常工作。请记住, key 名称是您在 S3 中的文件的名称,因此如果您想让您的 key 与您的文件具有相同的名称,您必须执行以下操作:$keyname = 'image.jpg'; 。此外,jpg 通常不是 plain/text 文件类型,您可以忽略 Content-type 字段,或者您可以简单地指定:image/jpeg

关于php - 使用 PHP SDK 在 Amazon S3 上上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22442660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com