Laravel 5 使用Laravel 5.3在S3中上载文件
安装过程 我的代码在下面Laravel 5 使用Laravel 5.3在S3中上载文件,laravel-5,laravel-5.2,laravel-5.1,laravel-5.3,Laravel 5,Laravel 5.2,Laravel 5.1,Laravel 5.3,安装过程 我的代码在下面 $s3 = \App::make('aws')->createClient('s3'); $s3->putObject(array( 'Bucket' => 'Bucket_Name', 'Key' => 'AWS_ACCESS_KEY_ID', 'SourceFile' => 'http://domainname/sample.txt', )); 我正在尝试一个包含大约50字节内容的tx
$s3 = \App::make('aws')->createClient('s3');
$s3->putObject(array(
'Bucket' => 'Bucket_Name',
'Key' => 'AWS_ACCESS_KEY_ID',
'SourceFile' => 'http://domainname/sample.txt',
));
我正在尝试一个包含大约50字节内容的txt文件,但出现以下错误
无法为提供的上载计算sha256校验和
尸体,因为它是看不见的。要防止此错误,您可以
1)将ContentMD5或ContentSHA256参数包含在
请求,2)使用一个可搜索的流来搜索身体,或3)包裹身体
GuzzleHttp\Psr7\CachingStream对象中不可查找的流。你
但是要小心,记住CachingStream
PHP临时流。这意味着该流将暂时关闭
存储在本地磁盘上
我缺少什么吗?
SourceFile
必须是本地文件路径。Body
参数允许流,因此您应该能够使用guzzle执行请求并将Body传递给它
$client = new GuzzleHttp\Client();
$response = $client->get('http://domainname/sample.txt');
$s3->putObject([
'Bucket' => 'Bucket_Name',
'Key' => 'AWS_ACCESS_KEY_ID',
'Body' => $response->getBody(),
]);