柚子快報(bào)邀請(qǐng)碼778899分享:阿里云OSS
柚子快報(bào)邀請(qǐng)碼778899分享:阿里云OSS
阿里云OSS?
SDK:軟件開(kāi)發(fā)工具包,包括輔助軟件開(kāi)發(fā)的依賴(jar包)、代碼示例等,都可以叫做SDK
配置AK & SK
以**管理員身份**打開(kāi)CMD命令行,執(zhí)行如下命令,配置系統(tǒng)的環(huán)境變量。
```shell set OSS_ACCESS_KEY_ID=LTAI5tXXXXXXXXXXXXXXXXXXXXM8TP set OSS_ACCESS_KEY_SECRET=UzMcJXXXXXXXXXXXXXXXXXXXXdabTNafi ```
?注意:將上述的ACCESS_KEY_ID??與?ACCESS_KEY_SECRET 的值一定一定一定一定一定一定要替換成自己的 。
執(zhí)行如下命令,讓更改生效。
```shell setx OSS_ACCESS_KEY_ID "%OSS_ACCESS_KEY_ID%" setx OSS_ACCESS_KEY_SECRET "%OSS_ACCESS_KEY_SECRET%" ```
執(zhí)行如下命令,驗(yàn)證環(huán)境變量是否生效。
```shell echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET% ``` ?
參照官方提供的SDK,改造一下,即可實(shí)現(xiàn)文件上傳功能:
~~~java package com.dkd.common.test;
import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.common.auth.*; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.OSSException; import com.aliyun.oss.model.PutObjectRequest; import com.aliyun.oss.model.PutObjectResult; import java.io.FileInputStream; import java.io.InputStream;
public class Demo {
? ? public static void main(String[] args) throws Exception { ? ? ? ? // Endpoint以華東1(杭州)為例,其它Region請(qǐng)按實(shí)際情況填寫。 ? ? ? ? String endpoint = "https://oss-cn-beijing.aliyuncs.com"; ? ? ? ? // 從環(huán)境變量中獲取訪問(wèn)憑證。運(yùn)行本代碼示例之前,請(qǐng)確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。 ? ? ? ? EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); ? ? ? ? // 填寫B(tài)ucket名稱,例如examplebucket。 ? ? ? ? String bucketName = "dkd-itheima"; ? ? ? ? // 填寫Object完整路徑,完整路徑中不能包含Bucket名稱,例如exampledir/exampleobject.txt。 ? ? ? ? String objectName = "gao.png"; ? ? ? ? // 填寫本地文件的完整路徑,例如D:\\localpath\\examplefile.txt。 ? ? ? ? // 如果未指定本地路徑,則默認(rèn)從示例程序所屬項(xiàng)目對(duì)應(yīng)本地路徑中上傳文件流。 ? ? ? ? String filePath= "E:\\temp\\upload\\gao.png";
? ? ? ? // 創(chuàng)建OSSClient實(shí)例。 ? ? ? ? OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
? ? ? ? try { ? ? ? ? ? ? InputStream inputStream = new FileInputStream(filePath); ? ? ? ? ? ? // 創(chuàng)建PutObjectRequest對(duì)象。 ? ? ? ? ? ? PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, inputStream); ? ? ? ? ? ? // 創(chuàng)建PutObject請(qǐng)求。 ? ? ? ? ? ? PutObjectResult result = ossClient.putObject(putObjectRequest); ? ? ? ? } catch (OSSException oe) { ? ? ? ? ? ? System.out.println("Caught an OSSException, which means your request made it to OSS, " ? ? ? ? ? ? ? ? ? ? + "but was rejected with an error response for some reason."); ? ? ? ? ? ? System.out.println("Error Message:" + oe.getErrorMessage()); ? ? ? ? ? ? System.out.println("Error Code:" + oe.getErrorCode()); ? ? ? ? ? ? System.out.println("Request ID:" + oe.getRequestId()); ? ? ? ? ? ? System.out.println("Host ID:" + oe.getHostId()); ? ? ? ? } catch (ClientException ce) { ? ? ? ? ? ? System.out.println("Caught an ClientException, which means the client encountered " ? ? ? ? ? ? ? ? ? ? + "a serious internal problem while trying to communicate with OSS, " ? ? ? ? ? ? ? ? ? ? + "such as not being able to access the network."); ? ? ? ? ? ? System.out.println("Error Message:" + ce.getMessage()); ? ? ? ? } finally { ? ? ? ? ? ? if (ossClient != null) { ? ? ? ? ? ? ? ? ossClient.shutdown(); ? ? ? ? ? ? } ? ? ? ? } ? ? } } ~~~
> 在以上代碼中,需要替換的內(nèi)容為: > > - endpoint:阿里云OSS中的bucket對(duì)應(yīng)的域名 > > - bucketName:Bucket名稱 > - objectName:對(duì)象名稱,在Bucket中存儲(chǔ)的對(duì)象的名稱 > - filePath:文件路徑
運(yùn)行以上程序后,會(huì)把本地的文件上傳到阿里云OSS服務(wù)器上。
柚子快報(bào)邀請(qǐng)碼778899分享:阿里云OSS
好文閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。