生活随笔
收集整理的這篇文章主要介紹了
腾讯云COS对象存储图片文件API的详细步骤过程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先創建一個桶。相當于你存儲圖片的容器。我這里是存儲圖片。
我選則是共有讀,私有寫。因為不選擇共有讀的話,以后別的地方沒辦法訪問
注意:
公有讀權限可以通過匿名身份直接讀取您存儲桶中的數據,存在一定的安全風險,為確保您的數據安全,不推薦此配置,建議您選擇私有。
建議您使用防盜鏈功能,可有效防止流量盜刷現象。
但是這個也有風險,別人可以不通過你的后臺,使用地址直接訪問圖片。如果選擇私有的話,需要后臺才能讀寫圖片。但是每次讀取圖片都需要通過后臺,增加了后臺服務器的壓力。
桶創建好了之后可以進入桶管理。手動上傳圖片。
每張圖片存儲到桶里之后,會有一個自己的外網地址。加上圖片的路徑,和圖片的名稱。形成一個唯一地址,訪問圖片。外網地址是不變的。圖片的路徑和圖片名稱,是存儲時自己指定的 。
然后就是包了。
<!--騰訊云對象存儲
--><dependency><groupId>com
.qcloud
</groupId
><artifactId>cos_api
</artifactId
><version>5.6.45</version
></dependency
>
這里是我使用的,大家可以找別的版本,或是自己語言的。
這里選擇上傳的方式,然后填寫參數。右邊會生成代碼。但是這里的介紹感覺沒那么詳細。可能因為騰訊的業務太多了。所以api文檔也特別龐大。 需要好幾處結合起來看。我選擇的是基本上傳,不超過5G的。因為我只存儲頭像。所以不會太大
File localFile
= new File(localFilePath
);
String bucketName
= "examplebucket-1250000000";
String key
= "exampleobject";
PutObjectRequest putObjectRequest
= new PutObjectRequest(bucketName
, key
, localFile
);
PutObjectResult putObjectResult
= cosClient
.putObject(putObjectRequest
);
這是他生成的原始代碼
**bucketName ** 存儲桶 的名稱。
// 指定要上傳到 COS 上對象鍵
String key = “exampleobject”; COS 上對象鍵,這個個感覺說的不太清楚,就是你存儲到桶里面的文件的名稱, 和路徑。 他會解析
String key = “111/222/444/99838.png”; 可以這樣寫。會吧1,2,4,解析為文件夾。 加上后面的時間戳文件名,形成一個訪問路徑。服務器在存儲時??梢灾苯佑猛饩W地址,加上自己定義的文件名。形成一個路徑存儲到數據庫。訪問的時候直接由頁面訪問到騰訊,查找圖片。減輕服務器壓力。
package com.tanhua.sso;import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.exception.CosClientException;
import com.qcloud.cos.http.HttpProtocol;
import com.qcloud.cos.model.PutObjectRequest;
import com.qcloud.cos.model.PutObjectResult;
import com.qcloud.cos.region.Region;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;import java.io.File;@SpringBootTest
@RunWith(SpringRunner.class)
public class CosMain {@AutowiredCOSClient cosClient
;@Testpublic void sendCos() {try {File localFile
= new File("C:\\Users\\silence\\Desktop\\9527.png");String bucketName
= "tanhua-1255913638";String key
= "111/222/444/99838.png";PutObjectRequest putObjectRequest
= new PutObjectRequest(bucketName
, key
, localFile
);cosClient
.putObject(putObjectRequest
);} catch (CosClientException e
) {e
.printStackTrace();}}}
這是我copy 過來后自己測試的代碼。
這里又有點小坑。cosClient ,他的代碼里面直接用了。但是又沒說怎么來的。可能接觸這方面比較少的話。不太友好。后來我查閱了別的文檔。他的文檔太多了。我忘了在哪看的了。就不放地址了。但是他有一個地方說了怎么創建這個cosClient。
package com.tanhua.sso.config;import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.http.HttpProtocol;
import com.qcloud.cos.region.Region;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class Coslient {@Value("${tengxun.sms.secretId}")private String secretId
;@Value("${tengxun.sms.secretKey}")private String secretKey
;@Beanpublic COSClient getCosClient() {COSCredentials cred
= new BasicCOSCredentials(secretId
, secretKey
);Region region
= new Region("ap-nanjing");ClientConfig clientConfig
= new ClientConfig(region
);clientConfig
.setHttpProtocol(HttpProtocol.https
);return new COSClient(cred
, clientConfig
);}}
他的文檔原始代碼差不多也就這樣,copy過來。修改一下。
主要時加上自己的keyid 和key。我用的時springboot 。spring掃描的時候。
因為我加了@Configuration 注解。會被spring 掃描到。
我在方法上加了@Bean 注解。這是spirng整合第三方類的表示。返回第三方對象。sipring掃描到這個方法時會將方法返回的對象。放到springIOC容器進行管理。所以后面我用到COSClient的之后直接
@Autowired
COSClient cosClient; DI 依賴注入就好了。 如果沒有用spirng 的,可以直接把代碼cpry 過來,拼接上就可以用了。
其實代碼還是滿簡介的,傳入流對象。他自己就可以存儲了。
用他提供的外網地址加key 文件路徑,文件名,可以直接訪問。
補充說明一下這個訪問域名在這。
域名加,存儲的文件名,可以直接訪問
這是我剛剛存儲的一張圖片。沒有加文件路徑。
總結
以上是生活随笔為你收集整理的腾讯云COS对象存储图片文件API的详细步骤过程的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。