From 7d0b872afc99cb6c776d87206f918e5313ff23e8 Mon Sep 17 00:00:00 2001 From: xiaoz Date: Mon, 6 May 2019 17:17:58 +0800 Subject: [PATCH] =?UTF-8?q?B2=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/controllers/upload2/B2up.php | 21 ++++ application/libraries/backblaze.php | 134 +++++++++++++++++++++++ application/views/user/sitemap.php | 20 ++++ index.php | 2 +- 4 files changed, 176 insertions(+), 1 deletion(-) create mode 100644 application/controllers/upload2/B2up.php create mode 100644 application/libraries/backblaze.php create mode 100644 application/views/user/sitemap.php diff --git a/application/controllers/upload2/B2up.php b/application/controllers/upload2/B2up.php new file mode 100644 index 0000000..cabb749 --- /dev/null +++ b/application/controllers/upload2/B2up.php @@ -0,0 +1,21 @@ +load->library('backblaze'); + } + public function test(){ + $this->backblaze->b2_authorize_account(); + } + public function test2(){ + + $this->backblaze->b2_get_upload_url(); + } + public function test3(){ + $this->backblaze->upload(); + } +} \ No newline at end of file diff --git a/application/libraries/backblaze.php b/application/libraries/backblaze.php new file mode 100644 index 0000000..4b2903a --- /dev/null +++ b/application/libraries/backblaze.php @@ -0,0 +1,134 @@ +CI = & get_instance(); + //初始化SESSION类 + $this->CI->load->library('session'); + } + //首先获取授权令牌 + public function b2_authorize_account(){ + //判断SESSION是否存在 + if( (!isset($_SESSION['api_url'])) OR (!isset($_SESSION['auth_token']))){ + $application_key_id = "d0aa4a0ab50e"; // Obtained from your B2 account page + $application_key = "002ba3a22d1496fbd2590ce91b01d100f641270e1e"; // Obtained from your B2 account page + $credentials = base64_encode($application_key_id . ":" . $application_key); + $url = "https://api.backblazeb2.com/b2api/v2/b2_authorize_account"; + + $session = curl_init($url); + + // Add headers + $headers = array(); + $headers[] = "Accept: application/json"; + $headers[] = "Authorization: Basic " . $credentials; + curl_setopt($session, CURLOPT_HTTPHEADER, $headers); // Add headers + + curl_setopt($session, CURLOPT_HTTPGET, true); // HTTP GET + curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($session, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($session, CURLOPT_RETURNTRANSFER, true); // Receive server response + $server_output = curl_exec($session); + curl_close ($session); + $data = json_decode($server_output); + //将api_url和token存入session + $this->CI->session->set_userdata('api_url', $data->apiUrl); + //echo 'APIURL:'.$data->apiUrl."
"; + $this->CI->session->set_userdata('auth_token',$data->authorizationToken); + //echo 'authorizationToken'.$data->authorizationToken; + } + else{ + return TRUE; + } + } + //获取上传URL + public function b2_get_upload_url(){ + //先判断api_url和auth_token是否存在 + //如果SESSION不存在 + if( (!isset($_SESSION['api_url'])) OR (!isset($_SESSION['auth_token']))){ + //调用函数auth_token + $this->b2_authorize_account(); + } + //再次判断upload_url和upload_auth_token是否存在,如果不存在则生成SESSION + if( (!isset($_SESSION['upload_url'])) OR (!isset($_SESSION['upload_auth_token']))){ + $api_url = $_SESSION['api_url']; // From b2_authorize_account call + $auth_token = $_SESSION['auth_token']; // From b2_authorize_account call + $bucket_id = "1d30babae40a300a6b75001e"; // The ID of the bucket you want to upload to + + $session = curl_init($api_url . "/b2api/v2/b2_get_upload_url"); + + // Add post fields + $data = array("bucketId" => $bucket_id); + $post_fields = json_encode($data); + curl_setopt($session, CURLOPT_POSTFIELDS, $post_fields); + curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($session, CURLOPT_SSL_VERIFYHOST, false); + // Add headers + $headers = array(); + $headers[] = "Authorization: " . $auth_token; + curl_setopt($session, CURLOPT_HTTPHEADER, $headers); + + curl_setopt($session, CURLOPT_POST, true); // HTTP POST + curl_setopt($session, CURLOPT_RETURNTRANSFER, true); // Receive server response + $server_output = curl_exec($session); // Let's do this! + curl_close ($session); // Clean up + //echo ($server_output); // Tell me about the rabbits, George! + $data = json_decode($server_output); + $this->CI->session->set_userdata('upload_url', $data->uploadUrl); + //echo 'APIURL:'.$data->apiUrl."
"; + $this->CI->session->set_userdata('upload_auth_token',$data->authorizationToken); + } + else{ + return TRUE; + } + } + //上传文件 + public function upload(){ + //如果SESSION不存在 + if( (!isset($_SESSION['upload_url'])) OR (!isset($_SESSION['upload_auth_token']))){ + //调用函数auth_token + $this->b2_get_upload_url(); + } + $file_name = "123.txt"; + $my_file = "E:/temp/" . $file_name; + $handle = fopen($my_file, 'r'); + $read_file = fread($handle,filesize($my_file)); + + $upload_url = $_SESSION['upload_url']; // Provided by b2_get_upload_url + $upload_auth_token = $_SESSION['upload_auth_token']; // Provided by b2_get_upload_url + $bucket_id = "1d30babae40a300a6b75001e"; // The ID of the bucket + $content_type = "text/plain"; + $sha1_of_file_data = sha1_file($my_file); + + $session = curl_init($upload_url); + + // Add read file as post field + curl_setopt($session, CURLOPT_POSTFIELDS, $read_file); + curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($session, CURLOPT_SSL_VERIFYHOST, false); + + // Add headers + $headers = array(); + $headers[] = "Authorization: " . $upload_auth_token; + $headers[] = "X-Bz-File-Name: " . $file_name; + $headers[] = "Content-Type: " . $content_type; + $headers[] = "X-Bz-Content-Sha1: " . $sha1_of_file_data; + curl_setopt($session, CURLOPT_HTTPHEADER, $headers); + + curl_setopt($session, CURLOPT_POST, true); // HTTP POST + curl_setopt($session, CURLOPT_RETURNTRANSFER, true); // Receive server response + $server_output = curl_exec($session); // Let's do this! + curl_close ($session); // Clean up + echo ($server_output); // Tell me about the rabbits, George! + } +} \ No newline at end of file diff --git a/application/views/user/sitemap.php b/application/views/user/sitemap.php new file mode 100644 index 0000000..8d4f047 --- /dev/null +++ b/application/views/user/sitemap.php @@ -0,0 +1,20 @@ + + + + + ImgURL站点地图 + + + + + + + + + \ No newline at end of file diff --git a/index.php b/index.php index d3e37d3..ca1304a 100644 --- a/index.php +++ b/index.php @@ -53,7 +53,7 @@ * * NOTE: If you change these, also change the error_reporting() code below */ - define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'production'); + define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development'); /* *---------------------------------------------------------------