| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
- namespace app\common\extend\upload;
- use Aws\S3\S3Client;
- use Aws\Exception\AwsException;
- class S3
- {
- public $name = 'S3';
- public $ver = '1.0';
- private $config = [];
- public function __construct($config = []) {
- $this->config = $config;
- }
- public function submit($file_path)
- {
- $bucket = $GLOBALS['config']['upload']['api']['s3']['bucket'];
- $accessKey = $GLOBALS['config']['upload']['api']['s3']['accesskey'];
- $secretKey = $GLOBALS['config']['upload']['api']['s3']['secretkey'];
- $region = $GLOBALS['config']['upload']['api']['s3']['region'];
- require_once ROOT_PATH . 'extend/aws/autoload.php';
- $s3 = new S3Client([
- 'region' => $region,
- 'version' => '2006-03-01',
- 'credentials' => [
- 'key' => $accessKey,
- 'secret' => $secretKey
- ]
- ]);
- try {
- $filePath = ROOT_PATH . $file_path;
- $result = $s3->putObject([
- 'Bucket' => $bucket,
- 'Key' => $file_path,
- 'Body' => fopen($filePath, 'r'),
- 'ACL' => 'public-read'
- ]);
- } catch (AwsException $e) {
- echo $e->getMessage() . "\n";
- }
- empty($this->config['keep_local']) && @unlink($filePath);
- return $result['ObjectURL'];
- }
- }
|