Java進階學習:將文件上傳到七牛雲中
通過本文,我們將講述如何利用七牛雲官方SDK,將我們的本地文件傳輸到其存儲空間中去。
JavaSDK:https://developer.qiniu.com/kodo/sdk/1239/java#server-upload
官方SDK:https://developer.qiniu.com/sdk#official-sdk
創建空間及綁定域名
創建存儲空間
這一步操作沒有什么好說的,我們存儲區域可以根據服務器的高頻訪問地域進行設置。
綁定域名
創建好存儲空間后就會默認給你一個測試域名來使得你能通過外鏈訪問你空間的內容。但是七牛雲存儲器作為我們應用的一部分,它的訪問域名也應該遵循我們的域名規范,此時我們可以通過綁定域名來實現這樣的效果,比如可以通過cloud.mrsaber.cn來訪問七牛雲存儲中的文件。
點擊圖示位置中的自定義域名:
填寫域名的相關信息及設置(域名必填,其他默認即可):
填寫完以后將七牛雲將會給你一個CNAME:
最后一步是,在你的域名廠商中添加一條二級解析域名,指向這個CNAME:
這樣回域名管理中刷新一下,直到通知你域名創建成功以后即可。
Java測試上傳文件
創建一個Java應用
由於要安裝七牛雲的SDK,我們將我們的Java應用轉換為Maven應用。
項目上右鍵 Add Framework Support 然后選中Maven,點擊OK
添加第三方類庫
<dependencies> <dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>7.2.11</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.3.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.6.2</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.qiniu</groupId> <artifactId>happy-dns-java</artifactId> <version>0.1.4</version> <scope>compile</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies>
編寫測試代碼
import com.google.gson.Gson; import com.qiniu.common.QiniuException; import com.qiniu.common.Zone; import com.qiniu.http.Response; import com.qiniu.storage.Configuration; import com.qiniu.storage.UploadManager; import com.qiniu.storage.model.DefaultPutRet; import com.qiniu.util.Auth; import java.util.Scanner; public class Main { public static void main(String[] args) { /* * Configuration 表示帶指定Zone對象的配置類 * 其中Zone 2 表示華南地區 * */ Configuration cfg = new Configuration(Zone.zone2()); UploadManager uploadManager = new UploadManager(cfg); String accessKey = "XXXXX"; String secretKey ="YYYYY"; String bucket= "你當時建的存儲空間的名稱"; Scanner scanner = new Scanner(System.in); String filePath = scanner.nextLine(); //Key 表示文件上傳到服務器中的名稱,為空的話默認為文件Hash值 String key = filePath.substring(filePath.lastIndexOf("/")+1); Auth auth = Auth.create(accessKey,secretKey); String upToken = auth.uploadToken(bucket); try { Response response = uploadManager.put(filePath,key,upToken); DefaultPutRet putRet = new Gson().fromJson(response.bodyString(),DefaultPutRet.class); System.out.println(putRet.hash); System.out.println(putRet.key); } catch (QiniuException e) { e.printStackTrace(); } } }
其中秘鑰的位置在這里