七牛支持抓取远程图片 API,用 access_key + secret_key + url 生成 access_token, 把 access_token 加在 header 里,然后向 post url 就完成上传了。
Sample code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
<?php /* * * @desc URL安全形式的base64编码 * @param string $str * @return string */ function urlsafe_base64_encode( $str ){ $find = array ( "+" , "/" ); $replace = array ( "-" , "_" ); return str_replace ( $find , $replace , base64_encode ( $str )); } /** * generate_access_token * * @desc 签名运算 * @param string $access_key * @param string $secret_key * @param string $url * @param array $params * @return string */ function generate_access_token( $access_key , $secret_key , $url , $params = '' ){ $parsed_url = parse_url ( $url ); $path = $parsed_url [ 'path' ]; $access = $path ; if (isset( $parsed_url [ 'query' ])) { $access .= "?" . $parsed_url [ 'query' ]; } $access .= "\n" ; if ( $params ){ if ( is_array ( $params )){ $params = http_build_query( $params ); } $access .= $params ; } $digest = hash_hmac( 'sha1' , $access , $secret_key , true); return $access_key . ':' .urlsafe_base64_encode( $digest ); } /** * 测试 */ $access_key = '' 'your access_key' ; $secret_key = 'your secret_key' ; $fetch = urlsafe_base64_encode( 'http://203.208.46.200/images/srpr/logo11w.png' ); $to = urlsafe_base64_encode( 'ibeircn:11.jpg' ); $url = 'http://iovip.qbox.me/fetch/' . $fetch . '/to/' . $to ; $access_token = generate_access_token( $access_key , $secret_key , $url ); $header [] = 'Content-Type: application/json' ; $header [] = 'Authorization: QBox ' . $access_token ; $con = send( 'iovip.qbox.me/fetch/' . $fetch . '/to/' . $to , $header ); var_dump( $con ); function send( $url , $header = '' ) { $curl = curl_init( $url ); curl_setopt( $curl , CURLOPT_RETURNTRANSFER, 1); curl_setopt( $curl , CURLOPT_HEADER,1); curl_setopt( $curl , CURLOPT_HTTPHEADER, $header ); curl_setopt( $curl , CURLOPT_POST, 1); $con = curl_exec( $curl ); if ( $con === false) { echo 'CURL ERROR: ' . curl_error( $curl ); } else { return $con ; } } ?> |
以上所述就是本文的全部内容了,希望大家能够喜欢。