七牛上傳路徑
Ⅰ android客戶端怎樣用七牛上傳照片
相信很多開發者會把圖片存放到七牛上,我的web站點也是吧圖片存儲到七牛上,對於以圖片為主的站點,這樣可以節省很大帶寬。
將圖片上傳到七牛伺服器的重點就是獲得上傳憑證uploadToken,直接把AccessKey和Secret放到客戶端太不安全,容易被反編譯。所以需要在伺服器端根據AccessKey和Secret動態生成一個uploadToken,然後傳回到客戶端,客戶端通過這個uploadToken將圖片上傳到七牛伺服器。
第一、在伺服器端生成uploadToken
//將圖片上傳到七牛 start
$bucket='七牛空間名稱';
$expires = 3600;
$accessKey='去七牛查看';
$secretKey='去七牛查看';
$client = new QiniuClient($accessKey,$secretKey);
$flags = array();
$scope = $bucket;
$deadline = time() + $expires;
$flags['scope'] = $scope;
$flags['deadline'] = $deadline;
$flags['returnBody'] = null;
echo $client->uploadToken($flags);
這里注意一下bucket:七牛空間名稱和deadline:uploadToken失效時間,具體可查看一下官網上傳憑證介紹
uploadToken($flags)是自己封裝的用於生成上傳憑證的函數
public function uploadToken($flags) { if(!isset($flags['deadline'])) $flags['deadline'] = 3600 + time(); $encodedFlags = self::urlsafe_base64_encode(json_encode($flags)); $sign = hash_hmac('sha1', $encodedFlags, $this->secretKey, true); $encodedSign = self::urlsafe_base64_encode($sign); $token = $this->accessKey.':'.$encodedSign. ':' . $encodedFlags; return $token; }
public static function urlsafe_base64_encode($str){
$find = array("+","/");
$replace = array("-", "_");
return str_replace($find, $replace, base64_encode($str));
}
第二、下載qiniu-android-sdk-7.0.0.jar和android-async-http-1.4.6並導入項目
第三、android上傳圖片
由於Android4.0 以後不允許在主線程進行網路連接,所以需要新開個線程來獲取上傳憑證。
/*
* 上傳圖片到七牛
*/
private void uploadImg(){
new Thread(new Runnable(){
@Override
public void run() {
//獲得七牛上傳憑證uploadToken
String token=getUploadToken();
//手機SD卡圖片存放路徑
String imgPath="";
try {
imgPath=FileUtil.getBasePath()+ "/test.jpg";
} catch (IOException e) {
e.printStackTrace();
}
if(token!=null){
String data = imgPath;
//圖片名稱為當前日期+隨機數生成
String key = getRandomFileName();
UploadManager uploadManager = new UploadManager();
uploadManager.put(data, key, token,
new UpCompletionHandler() {
@Override
public void complete(String arg0, ResponseInfo info, JSONObject response) {
// TODO Auto-generated method stub
Log.i("qiniu", info.toString());
}
}, null);
}
else{
Log.i("fail", "上傳失敗");
}
}
}).start();
}
FileUtil.getBasePath()使用來獲取SD卡基本路徑,getRandomFileName()生成一個隨機數來命名上傳圖片,具體方法我在這就不寫了。
獲得上傳憑證的方法也很簡單,直接使用httpget和伺服器通信,獲得第一步中生成的數據即可。(注意10.0.2.2是模擬器提供的特殊IP,等同於在電腦端的環回測試IP127.0.0.1)
/*
* 獲得七牛上傳憑證uploadtoken
*/
private String getUploadToken()
{
HttpClient client = new DefaultHttpClient();
StringBuilder builder = new StringBuilder();
HttpGet myget = new HttpGet("http://10.0.0.2/test/getUploadToken.php");
try {
HttpResponse response = client.execute(myget);
BufferedReader reader = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
for (String s = reader.readLine(); s != null; s = reader.readLine()) {
builder.append(s);
}
return builder.toString();
} catch (Exception e) {
Log.i("url response", "false");
e.printStackTrace();
return null;
}
}
通過LOG日誌可以看到Qiniu--success,說明上傳成功。
Ⅱ ThinkPHP6上傳圖片七牛雲 如何上傳文件到七牛雲對象儲存cos
ThinkPHP6 如何上傳圖片七牛雲,如何上傳文件到七牛雲對象儲存cos,總所周知圖片是特別消耗網站帶寬的,個人網站將圖片上傳至七牛雲才能顯著提升網站的響應速度,手把手交大家如何上配置ThinkPHP6上傳文件至七牛雲.
然後我們就可以使用 $url=Qiniu::upload($filePath,$filename); 傳入文件的相對路徑或絕對路徑加上文件名,在文件上傳成功後自動又將圖片上傳至七牛雲~
Ⅲ 誰用七牛雲設置水印成功了
相信很多開發者會把圖片存放到七牛上,我的web站點也是吧圖片存儲到七牛上,對於以圖片為主的站點,這樣可以節省很大帶寬。將圖片上傳到七牛伺服器的重點就是獲得上傳憑證uploadToken,直接把AccessKey和Secret放到客戶端太不安全,容易被反編譯。所以需要在伺服器端根據AccessKey和Secret動態生成一個uploadToken,然後傳回到客戶端,客戶端通過這個uploadToken將圖片上傳到七牛伺服器。第一、在伺服器端生成uploadToken//將圖片上傳到七牛start$bucket='七牛空間名稱';$expires=3600;$accessKey='去七牛查看';$secretKey='去七牛查看';$client=newQiniuClient($accessKey,$secretKey);$flags=array();$scope=$bucket;$deadline=time()+$expires;$flags['scope']=$scope;$flags['deadline']=$deadline;$flags['returnBody']=null;echo$client->uploadToken($flags);這里注意一下bucket:七牛空間名稱和deadline:uploadToken失效時間,具體可查看一下官網上傳憑證介紹uploadToken($flags)是自己封裝的用於生成上傳憑證的函數publicfunctionuploadToken($flags){if(!isset($flags['deadline']))$flags['deadline']=3600+time();$encodedFlags=self::urlsafe_base64_encode(json_encode($flags));$sign=hash_hmac('sha1',$encodedFlags,$this->secretKey,true);$encodedSign=self::urlsafe_base64_encode($sign);$token=$this->accessKey.':'.$encodedSign.':'.$encodedFlags;return$token;}publicstaticfunctionurlsafe_base64_encode($str){$find=array("+","/");$replace=array("-","_");returnstr_replace($find,$replace,base64_encode($str));}第二、下載qiniu-android-sdk-7.0.0.jar和android-async-http-1.4.6並導入項目第三、android上傳圖片由於Android4.0以後不允許在主線程進行網路連接,所以需要新開個線程來獲取上傳憑證。/**上傳圖片到七牛*/privatevoiploadImg(){newThread(newRunnable(){@Overridepublicvoidrun(){//獲得七牛上傳憑證uploadTokenStringtoken=getUploadToken();//手機SD卡圖片存放路徑StringimgPath="";try{imgPath=FileUtil.getBasePath()+"/test.jpg";}catch(IOExceptione){e.printStackTrace();}if(token!=null){Stringdata=imgPath;//圖片名稱為當前日期+隨機數生成Stringkey=getRandomFileName();UploadManageruploadManager=newUploadManager();uploadManager.put(data,key,token,newUpCompletionHandler(){@Overridepublicvoidcomplete(Stringarg0,ResponseInfoinfo,JSONObjectresponse){//TODOAuto-generatedmethodstubLog.i("qiniu",info.toString());}},null);}else{Log.i("fail","上傳失敗");}}}).start();}FileUtil.getBasePath()使用來獲取SD卡基本路徑,getRandomFileName()生成一個隨機數來命名上傳圖片,具體方法我在這就不寫了。獲得上傳憑證的方法也很簡單,直接使用httpget和伺服器通信,獲得第一步中生成的數據即可。(注意10.0.2.2是模擬器提供的特殊IP,等同於在電腦端的環回測試IP127.0.0.1)/**獲得七牛上傳憑證uploadtoken*/privateStringgetUploadToken(){HttpClientclient=newDefaultHttpClient();StringBuilderbuilder=newStringBuilder();HttpGetmyget=newHttpGet("10.0.0.2/test/getUploadToken.php");try{HttpResponseresponse=client.execute(myget);BufferedReaderreader=newBufferedReader(newInputStreamReader(response.getEntity().getContent()));for(Strings=reader.readLine();s!=null;s=reader.readLine()){builder.append(s);}returnbuilder.toString();}catch(Exceptione){Log.i("urlresponse","false");e.printStackTrace();returnnull;}}通過LOG日誌可以看到Qiniu--success,說明上傳成功。
Ⅳ php表單上傳圖片到七牛雲存儲並返回地址……求具體流程~有代碼更好
有的,我最近研究了一下,寫了一篇記錄,如下
原文地址:http://cuiqingcai.com/?p=157
網上關於七牛雲存儲的教程除了官網上的API文檔,其他的資料太少了。研究了下API之後,現在已經能實現圖片的上傳和下載及上傳之後的重定向。
首先本篇文章實現的功能如下:
1.利用表單上傳功能,用戶可以點擊選擇文件按鈕,選擇本地的一個文件,同時設定上傳的圖片的名稱,點擊上傳按鈕可以上傳並存儲到七牛雲存儲。
2.在點擊上傳時會檢測文件的後綴名,限制為jpg和png格式存儲。
3.上傳成功後跳轉到自己設定的一個URL,並傳迴文件信息,如文件名。而不是顯示七牛白花花的json顯示頁面。
好啦,那我們開始吧,首先我們要有一個七牛雲存儲賬號,如果沒有的就自己去申請吧。
七牛雲存儲傳送門:http://www.qiniu.com/
一.SDK下載
https://github.com/qiniu/php-sdk/tags
戳這個網址下載一下SDK吧,裡面封裝了文件上傳下載等等的方法,我們引入之後可以直接調用。
SDK之中有一個qiniu的文件夾,這是所有的SDK實貨,這個是最重要的。我們首先要把這個文件夾及裡面的文件放到項目文件夾中,比如我放到這里。
大家可以看到有一個qiniu文件夾。好啦,資源支持就是這樣。接下來我們要實現代碼咯。
二.文件的上傳。
1.首先把你七牛雲存儲的密鑰照出來,點擊賬號設置可以看到有一個AccessKey和SecretKey,留著備用。
2.上傳憑證生成。
在這里我們首先要引入rs.php文件,自己找一對應路徑,代碼如下:
require_once(dirname(__FILE__)."/../../qiniu/rs.php");
dirname()是指的絕對路徑,有時相對路徑會出現問題,建議在前面加上dirname方法獲取絕對路徑。
require_once是引入文件,表示該文件只引入一次。
然後,傳入你的AccessKey和SecretKey
代碼如下:
$accessKey='';//換成你自己的密鑰
$secretKey='';//換成你自己的密鑰
Qiniu_SetKeys($accessKey, $secretKey);
然後建一個上傳策略對象,將你的bucket傳入,bucket 就是你的空間名。
$bucket = 'designpartners';
$putPolicy = new Qiniu_RS_PutPolicy($bucket);
然後調用此方法來生成上傳憑證。
$upToken = $putPolicy->Token(null);
接下來就寫一個html表單
<formmethod="post"action="http://up.qiniu.com"name="form"enctype="multipart/form-data">
<ul>
<inputtype="hidden"id="token"name="token"value=<?phpecho$upToken?>>
<li>
<labelfor="key">key:</label>
<inputname="key"value="">
</li>
<li>
<labelfor="bucket">照片:</label>
<inputname="file"type="file"/>
</li>
<li>
<inputtype="submit"value="提交">
</li>
</ul>
</form>
action就填寫up.qiniu.com,表單提供了一個輸入框key,用來輸入你想保存的圖片名稱,上傳到七牛之後就是這個名字。
然後一個文件選擇,一個提交按鈕。運行結果如下:
輸入key值和選擇照片即可實現照片的上傳。哈哈哈有沒有很簡單。
三、文件下載
原理和文件上傳功能相仿。
引入文件
require_once(dirname(__FILE__)."/../../qiniu/rs.php");
聲明你的七牛雲存儲域名和兩個密鑰以及向下載的文件名稱
$key='00000';
$domain='designpartners.qiniudn.com';
$accessKey='';
$secretKey='';
注意:1.key值即為文件名,不要加後綴
2.domain即為bucket加上qiniudn.com,例子中的designpartners就是我在上傳圖片時用的bucket名。
3.accessKey和secretKey換成你自己的,直接用我的不行的..因為我修改了.
Qiniu_SetKeys($accessKey,$secretKey);
$baseUrl=Qiniu_RS_MakeBaseUrl($domain,$key);
$getPolicy=newQiniu_RS_GetPolicy();
$privateUrl=$getPolicy->MakeRequest($baseUrl,null);
echo$privateUrl." ";
傳入這四個值即可生成一樣url,直接訪問url即可實現圖片的下載。
在引入圖片時直接
<img src = "<?php echo $privateUrl; ?>"/>
即可引入圖片咯,很簡單的吧。
四、303重定向
在上面的方法中,我們上傳圖片成功後跳轉到up.qiniu.com下,會顯示白白的網頁,顯示一個json字元串,但是在實際網站開發中我們肯定 不能讓用戶看到這種網頁,所以我們用到了303跳轉。SDK中也為我們封裝了這個方法。使用其實非常簡單。在上傳文件的代碼中添加兩行代碼即可
$putPolicy=newQiniu_RS_PutPolicy($bucket);
$putPolicy->ReturnUrl=site_url()."/upload/receiveInfo";
$putPolicy->ReturnBody='{"key":$(key)}';
注意:1.ReturnUrl和ReturnBody必須指定,並且首字母要大寫,很多人都小寫開頭,這樣會跳轉不成功。
2.ReturnUrl必須是一個公網可以訪問的網址,在本地測試是不可能通過的。比如你寫成localhost,七牛伺服器是定位不到的。
3.這個ReturnUrl的鏈接後會跟著一個?upload_ret=XXX,可以用get方法獲取這個upload_ret。upload_ret的內容是base64安全編碼的json形式的key值。
值的解析:比如我上傳的文件名是555
upload/receiveInfo?upload_ret=eyJrZXkiOiAiNTU1In0=
網址後綴如上所示,把那個upload_ret復制下來,用base64解碼可以出現如下結果:
{"key": "555"}
所以,我們要獲取555這個值的代碼如下,即解析代碼如下:
$upload_ret=$_GET['upload_ret'];
$json_ret=base64_decode($upload_ret);
$result=json_decode($json_ret);
echo"key".$result->key;
好啦,獲取到這個key值之後,你可以選擇存到資料庫或者進行其他的操作咯。
五、上傳前文件類型的驗證
我們可以用js來驗證文件的後綴名,
在form的屬性里加上
onsubmit="return isValidateFile('file');"
加上一個js方法
<script>
functionisValidateFile(obj){
varextend=document.form.file.value.substring(document.form.file.value.lastIndexOf(".")+1);
if(extend==""){
alert("請選擇頭像");
returnfalse;
}
else{
if(!(extend=="jpg"||extend=="png")){
alert("請上傳後綴名為jpg或png的文件!");
returnfalse;
}
}
returntrue;
}
</script>
即可驗證它的類型是否合法。
附:CI代碼實現:
獲取Uptoken:
functiongetUptoken(){
require_once(dirname(__FILE__)."/../../qiniu/rs.php");
//遠程存儲空間名稱
$bucket='designpartners';
$accessKey='';
$secretKey='';
Qiniu_SetKeys($accessKey,$secretKey);
$putPolicy=newQiniu_RS_PutPolicy($bucket);
echosite_url();
$putPolicy->ReturnUrl=site_url()."/upload/receiveInfo";
$putPolicy->ReturnBody='{"key":$(key)}';
$upToken=$putPolicy->Token(null);
return$upToken;
}
文件上傳:
publicfunctionuploadPic(){
$upToken=$this->getUptoken();
$data['upToken']=$upToken;
$this->load->view('upload',$data);
}
303重定向解析:
publicfunctionreceiveInfo(){
$upload_ret=$_GET['upload_ret'];
$json_ret=base64_decode($upload_ret);
$result=json_decode($json_ret);
echo"key".$result->key;
}
文件下載:
publicfunctiondownloadPic(){
require_once(dirname(__FILE__)."/../../qiniu/rs.php");
$key='00000';
$domain='designpartners.qiniudn.com';
$accessKey='';
$secretKey='';
Qiniu_SetKeys($accessKey,$secretKey);
$baseUrl=Qiniu_RS_MakeBaseUrl($domain,$key);
$getPolicy=newQiniu_RS_GetPolicy();
$privateUrl=$getPolicy->MakeRequest($baseUrl,null);
echo"====>getPolicyresult: ";
echo$privateUrl." ";
}
表單:
<script>
functionisValidateFile(obj){
varextend=document.form.file.value.substring(document.form.file.value.lastIndexOf(".")+1);
if(extend==""){
alert("請選擇頭像");
returnfalse;
}
else{
if(!(extend=="jpg"||extend=="png")){
alert("請上傳後綴名為jpg或png的文件!");
returnfalse;
}
}
returntrue;
}
</script>
<formmethod="post"action="http://up.qiniu.com"name="form"enctype="multipart/form-data"onsubmit="returnisValidateFile('file');">
<ul>
<inputtype="hidden"id="token"name="token"value=<?phpecho$upToken?>>
<li>
<labelfor="key">key:</label>
<inputname="key"value="">
</li>
<li>
<labelfor="bucket">照片:</label>
<inputname="file"type="file"/>
</li>
<li>
<inputtype="submit"value="提交">
</li>
</ul>
</form>
Ⅳ 我為什麼最終選擇了七牛雲存儲
說實話,當初在用又拍雲的時候,遇到了一些麻煩,因為我一開始不知道該怎麼操作,其操作界面不是很人性化,弄了半天才弄明白怎麼樣新建一個空間,新建空間之後,還需要用 FTP 軟體來管理這個空間的內容,在 Mac 上找到一個靠譜的FTP 管理工具並不容易,我試用了FileZilla 這個軟體,使用和配置 FTP 又花了我不少功夫。
反觀七牛則是一目瞭然,從新建空間、配置空間、上傳文件、獲取外鏈,全部都是在網頁中可以完成簡易的可視化操作:
在管理後台,無論是使用還是統計都是一目瞭然:
以我上傳一張照片並獲取外鏈供博客使用為例,比較一下又拍雲和七牛雲的流程:
又拍雲
1.打開並登錄 FTP 工具;
2.上傳圖片;
3.復制圖片名
4.在博客管理後台輸入外鏈路徑+圖片名(這一點最為麻煩,每次都需要手動輸入一長串鏈接地址)
七牛雲
1.直接在網頁管理後台上傳圖片(這個界面很友好,和 wordpress 的圖片上傳界面類似)
2.直接獲取復制完整外鏈即可(注意右側的圖片預覽功能,這個對於圖片多了之後防止誤操作很是實用)
相比之下,顯然是七牛雲在操作使用上更加簡便易行。
可視化圖片處理設置
在數據處理環節,七牛雲也比較方便,比如我的博客圖片寬度不能超過550px,否則會撐破主題,並且想加上一個@望月的水印,那麼就可以在數據處理界面進行設置。
這樣,就不用在博客後台每次添加圖片之後都去重新調整一下大小,也不用使用圖片修改軟體去添加水印之類的了。
免費的使用空間和流量
對於新用戶,七牛雲存儲免費贈送10G 的使用空間+10G/月的流量,對於小博客來說,是完全夠用了,推薦朋友還可以免費獲取空間,如果你有需要,可以通過我的推薦鏈接注冊七牛,也可以幫我增加一些免費空間和流量,謝謝。
同時,通過36Kr 的活動頁面,還可以獲取800元的代金券和85折的協議價進行續費充值。
即使是流量、存儲空間和數據請求超出,七牛的價格也相對便宜。
一鍵加速功能
除此之外,還很是喜歡七牛雲的一鍵加速網站功能,也就是鏡像存儲,源站資源(文件/圖片等)根據初次訪問自動同步到七牛雲存儲,數據平滑遷移。可使用綁定的自定義域名訪問鏡像存儲的源站資源。格式:http://綁定域名/源站資源相對路徑。
還可以配合使用七牛鏡像存儲 WordPress 插件一鍵實現 WordPress 博客靜態文件 CDN 加速。
其實,七牛雲在圖片存儲和使用方面的便捷就足夠打動我了,綜合來說,七牛雲存儲設計更加人性化、操作更加簡便,價格更加適中,無論是對於博客用戶還是開發者用戶,都是個不錯的選擇。
Ⅵ 鎬庝箞浣跨敤Dropzone 蹇閫熶笂浼犲浘鐗
鎬庝箞浣跨敤Dropzone 蹇閫熶笂浼犲浘鐗
銆妗堜緥鐨勫師鏂囪風湅鏂囨湯閾炬帴錛屾垜鍦ㄨ繖鍐嶇畝鍗曚粙緇嶄竴涓嬪惂銆傞栧厛浣犻渶瑕佹湁鐢ㄨ繃涓冪墰浜戝瓨鍌錛屽叧浜庤繖嬈懼浘搴婁駭鍝佸氨涓嶉渶瑕佹垜璇︾粏浠嬬粛浜嗗惂錛岀櫨搴︿竴澶у爢鏂囩珷錛岀湅鐪嬪氨濂斤紝榪欓噷闇瑕佹垜浠鍦ㄥ畨瑁呰嚜鍒 Dropzone Action 鍚庯紝涓 Action 閲岄厤緗涓婁綘鍦ㄤ竷鐗涢噷寤虹珛鐨勭┖闂翠俊鎮浠ュ強 Access Key銆丼ecret Key 浠ュ強絀洪棿鍩熷悕銆
銆鍏蜂綋姝ラわ細
涓嬭澆騫跺畨瑁 Dropzone Qiniu 鎻掍歡
瀹夎 Qiniu 鐨 Ruby 搴擄紝鍦ㄥ懡浠よ屾墽琛 sudo gem install qiniu
鍚鐢ㄦ彃浠跺悗鍦ㄩ厤緗紿楀彛鍐呭~鍐欎竷鐗涚┖闂寸殑鍚勭嶄俊鎮錛
server: 浣犲啀涓冪墰涓婄殑絀洪棿鍚
username: 涓冪墰鐨刟ccess_key
password: 涓冪墰鐨剆ecret_key
remote path(鍙閫): 鏈鍦板悓姝ュ浘鐗囩殑鐩褰曪紝濡傛灉浣犲笇鏈涙湰鍦頒篃瀛樹竴浠藉浘鐗囷紝閫変竴涓鍦板潃鍗沖彲
root url: 涓冪墰鐨勫叕鍏遍摼鎺ユ牴鐩褰(涔熷氨鏄榛樿ょ殑鍩熷悕鎴栬呰嚜瀹氫箟鍩熷悕)
涔嬪悗灝嗗浘鐗囩洿鎺ユ嫋鍏 Dropzone 鍦 Menubar 鐨勬搷浣滃彴鑿滃崟涓涓冪墰鎻掍歡鐨勫浘鏍囦笂鍗沖彲寮濮嬩笂浼犲浘鐗囷紝涓婁紶瀹屾瘯鍚庣郴緇熶細鏈夋秷鎮閫氱煡鍛婄煡涓婁紶瀹屾瘯銆
浣嗗湪瀹為檯鎿嶄綔涓錛屼綘鍙鑳戒細鍍忔垜涓鏍烽亣鍒 Qiniu Ruby 搴撴棤娉曟e父瀹夎呯殑鎯呭喌錛屾ゆ椂浣犻渶瑕佺『璁や竴涓嬬郴緇 Ruby 鐨勫畨瑁呯洰褰曪紝鏈夌殑鏃跺欏ス浼氬畨瑁呭湪 /usr/bin/ 閲岋紝涔熸湁鏃跺欎細鍦 /usr/local/bin/錛屾ゆ椂浣犻渶瑕佸埌 Dropzone Qiniu 鎻掍歡 閲岀殑 Action.rb 閲岀紪杈戜竴涓嬫敞閲婃佃惤鏈鍚庝竴琛岄噷瀵 RubyPath 鐨勮礬寰勶紝濡備笅鍥撅紝涓嶇劧浣犲湪浣跨敤鎻掍歡鏃朵細閬囧埌浠ヤ笅綾諱技鐨勯敊璇鎻愮ず
銆/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require鈥: cannot load such file 鈥 qiniu (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require鈥
from /Users/sguotao/Library/Application Support/Dropzone 3/Actions/Qiniu.dzbundle/action.rb:16:in `鈥
from /Applications/Dropzone 3.app/Contents/Actions/lib/run鈥 `load鈥
from /Applications/Dropzone 3.app/Contents/Actions/lib/run鈥 `鈥
銆榪樻湁鐨勬椂鍊欙紝浣犳墽琛 sudo gem install qiniu 榪欏彞鍛戒護鏃朵細閬囧埌涓婇潰榪欑嶆彁紺猴紝榪欒存槑榛樿ょ殑 Gem Source 閲岀殑緗戝潃闇瑕佸仛浠g悊璁塊棶錛屽湪 Qiniu Ruby 鍖呯殑瀹夎呭懡浠ゆ坊鍔 鈥搵ttp-proxy http://浠g悊鏈嶅姟鍣:絝鍙o紝涔熷氨鏄 sudo gem install 鈥搵ttp-proxy http://浠g悊鏈嶅姟鍣:絝鍙 qiniu;鎴栬呬綘涔熷彲浠ュ垹闄 Gem Source 閲岄粯璁ょ殑 https://rubygems.org/錛屼嬌鐢ㄦ窐瀹濇彁渚涚殑 Ruby 闀滃儚絝欙細https://ruby.taobao.org(娉ㄦ剰瑕佺敤 https)銆
閰嶇疆 Gem Sources 鐨勬柟娉曟槸錛
鏄劇ず褰撳墠浣跨敤鐨剆ources錛歡em sources
娣誨姞涓涓猻ource錛歡em sources -a url鍦板潃
鍒犻櫎涓涓猻ource錛歡em sources -r url鍦板潃
鏇存柊source cache錛歡em sources -u
鎼炲畾涔嬪悗灝卞彲浠ユe父涓嬭澆 Qiniu Ruby 鍖呬簡錛屼笉榪囧湪瀹夎呯殑榪囩▼涓浣犲彲鑳借繕浼氶亣鍒板洶闅撅紝灝卞儚涓嬮潰榪欑嶏細
銆鍙嶆e氨鏄 bla bla 涓澶у爢錛屾垜鍦ㄧ綉涓婄湅鍒扮殑瀹夎 XCode Command Line Tools 灝辮兘鎼炲畾浜嗭紝鍦ㄧ粓絝鎵ц gcc 鈥搗ersion 鍗沖彲錛屼箣鍚庨兘 OK 浜嗭紝鍙浠ユe父浣跨敤鎻掍歡銆