项目根目录使用 Composer

composer require baidubce/bce-sdk-php

在 Controller 中引入

<?php
require '../vendor/autoload.php';//这句不用,自动引入
use BaiduBce\Services\Bos\BosClient;

测试连接

public function baidu(){
  $BOS_TEST_CONFIG =
	array(
	  'credentials' => array(
	  'accessKeyId' => '684b94f7675142d79ed2bxxxxxxxxxxx',
	  'secretAccessKey' => '0ee6b11cc38445fc8xxxxxxxxxxxxx',
	  ),
	  'endpoint' => 'https://todo.cdn.bcebos.com',
	);
  $client = new BosClient($BOS_TEST_CONFIG);
  dump($client);
}

输出结果

上传文件测试

public function baidu(){
  $BOS_TEST_CONFIG =
    array(
      'credentials' => array(
      'accessKeyId' => '684b94f7675142d79ed2bxxxxxxxxxxx',
      'secretAccessKey' => '0ee6b11cc38445fc8xxxxxxxxxxxxx',
      'sessionToken' => ''
      ),
    'endpoint' => 'https://todo.cdn.bcebos.com',
    'stsEndpoint' => '',
  );
  $client = new BosClient($BOS_TEST_CONFIG);
  $bucketName = 'path';
  $a = $client->putObjectFromFile($bucketName, 'abc.png', 'tmp/x.png');
  dump($a);
}

如果用的是百度的服务器,可能出现在线报错

[curl] 6: Could not resolve host: todo.cdn.bcebos.com; Unknown error [url] 

DNS 的问题

vim /etc/resolv.conf 

修改

但是修改 DNS 的方式会使无法使用内网传输,

所以需要将上传地址改为官方域名,不要用 CDN 加速域名,这样百度内网服务器之间网就可以妙传了

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注