阿里雲oss上傳本地檔案到伺服器例項
Java 專案開發中阿里雲 oss上傳本地到伺服器以及下載功能實現例項。
AliyunOSSUtil類:
public class AliyunOSSUtil { /** * 該示例程式碼展示瞭如果在OSS中建立和刪除一個Bucket,以及如何上傳和下載一個檔案。 * * 該示例程式碼的執行過程是: * 1. 建立一個Bucket(如果已經存在,則忽略錯誤碼); * 2. 上傳一個檔案到OSS; * 3. 下載這個檔案到本地; * 4. 清理測試資源:刪除Bucket及其中的所有Objects。 * * 嘗試執行這段示例程式碼時需要注意: * 1. 為了展示在刪除Bucket時除了需要刪除其中的Objects, * 示例程式碼最後為刪除掉指定的Bucket,因為不要使用您的已經有資源的Bucket進行測試! * 2. 請使用您的API授權金鑰填充ACCESS_ID和ACCESS_KEY常量; * 3. 需要準確上傳用的測試檔案,並修改常量uploadFilePath為測試檔案的路徑; * 修改常量downloadFilePath為下載檔案的路徑。 * 4. 該程式僅為示例程式碼,僅供參考,並不能保證足夠健壯。 * */ private static final String ACCESS_ID = "cvj2e9aH*****"; private static final String ACCESS_KEY = "KFdm4MeaT******"; private static final String endPoint = "http://oss-cn-beijing.aliyuncs.com"; private static final String bucketName = "x******"; // 設定URL過期時間為1天 private static final Date expiration = new Date(new Date().getTime() + 3600 * 1000 * 24); //在自己內部定義自己的一個 例項,只供內部呼叫 private static final OSSClient client = new OSSClient(endPoint, ACCESS_ID, ACCESS_KEY); private AliyunOSSUtil(){ //do something }
//單例模式 //獲得客戶端 public static OSSClient getOSSClient(){ return client; } //建立一個Bucket public static void ensureBucket()throws OSSException, ClientException{ try { // 建立bucket, 判斷bucket是否存在 boolean exists = client.doesBucketExist(bucketName); if(!exists){ client.createBucket(bucketName); }else{ } } catch (ServiceException e) { System.out.println(e.getErrorCode() + " " + e.getErrorMessage()); throw e; } } // 獲取指定bucket下的所有Object資訊 public void getObjects(OSSClient client,String bucketName){ ObjectListing listing = client.listObjects(bucketName); // 遍歷所有Object for (OSSObjectSummary objectSummary : listing.getObjectSummaries()) { System.out.println(objectSummary.getKey()); } } // 刪除一個Bucket和其中的Objects public static void deleteBucket(OSSClient client, String bucketName) throws OSSException, ClientException { ObjectListing ObjectListing = client.listObjects(bucketName); List<OSSObjectSummary> listDeletes = ObjectListing.getObjectSummaries(); for (int i = 0; i < listDeletes.size(); i++) { String objectName = listDeletes.get(i).getKey(); // 如果不為空,先刪除bucket下的檔案 client.deleteObject(bucketName, objectName); } client.deleteBucket(bucketName); } // 把Bucket設定為所有人可讀 public static void setBucketPublicReadable(OSSClient client, String bucketName) throws OSSException, ClientException { //建立bucket client.createBucket(bucketName); //設定bucket的訪問許可權,public-read-write許可權 client.setBucketAcl(bucketName, CannedAccessControlList.PublicRead); } // 上傳檔案 file public static void uploadFile(String key, File file) throws OSSException, ClientException, FileNotFoundException { // 獲取指定檔案的輸入流 InputStream content = new FileInputStream(file); // 建立上傳Object的Metadata <span style="white-space:pre"> </span> ObjectMetadata meta = new ObjectMetadata(); // 必須設定ContentLength meta.setContentLength(file.length()); meta.setContentType("image/*"); client.putObject(bucketName, key, content, meta); } // 上傳檔案 MultipartFile multipartFile public static void uploadMultipartFile(String key, MultipartFile multipartFile) throws OSSException, ClientException, FileNotFoundException { try { // 獲取指定檔案的輸入流 InputStream content = multipartFile.getInputStream(); // 建立上傳Object的Metadata ObjectMetadata meta = new ObjectMetadata(); // 必須設定ContentLength meta.setContentLength(multipartFile.getSize() ); meta.setContentType("image/*"); client.putObject(bucketName, key, content, meta); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //生成URL public static URL getUrl(String key){ URL url = client.generatePresignedUrl(bucketName, key, expiration); return url; } // 下載檔案 public static void downloadFile(OSSClient client, String bucketName, String key, String fileDownloadPath) throws OSSException, ClientException { client.getObject(new GetObjectRequest(bucketName, key), new File(fileDownloadPath)); } //建立Bucket 裡的虛擬資料夾 public static void createFileDir(String dir)throws OSSException, ClientException{ ensureBucket(); try { client.getObject(bucketName, dir); } catch (ServiceException e) { // TODO Auto-generated catch block if(e.getErrorCode().equals("NoSuchKey")){ //要建立的資料夾名稱,在滿足Object命名規則的情況下以"/"結尾 String objectName = dir + "/"; ObjectMetadata objectMeta = new ObjectMetadata(); /*這裡的size為0,注意OSS本身沒有資料夾的概念,這裡建立的資料夾本質上是一個size為0的Object,dataStream仍然可以有資料 */ byte[] buffer = new byte[0]; ByteArrayInputStream in = new ByteArrayInputStream(buffer); objectMeta.setContentLength(0); try { //建立檔案上傳目錄 client.putObject(bucketName, objectName, in, objectMeta); }catch(ServiceException se){ System.out.println(se.getErrorCode() + " " + se.getErrorMessage()); throw e; } finally { try { in.close(); } catch (IOException ioe) { // TODO Auto-generated catch block ioe.printStackTrace(); } } } } } }
相關推薦
阿里雲oss上傳本地檔案到伺服器例項
Java 專案開發中阿里雲 oss上傳本地到伺服器以及下載功能實現例項。 AliyunOSSUtil類: public class AliyunOSSUtil { /** * 該示例程式碼展示瞭如果在OSS中建立和刪除一個Bucket,以及如何上傳和下載一個檔案。 *
使用阿里雲OSS上傳下載專案檔案
1、登入阿里雲開通阿里雲OSS,根據官網說明進行操作獲取需要的配置引數 'id'=> '你的accessKeyId', 'key'=> '你的accessKeySecret', 'host' => 'oss-cn-beijing.aliyunc
tp5呼叫阿里雲oss上傳檔案
推薦使用composer方式 composer方式安裝SDK的步驟如下: 在專案的根目錄執行composer require aliyuncs/oss-sdk-php,或者在composer.j
阿里雲OSS 上傳檔案 刪除檔案自封裝 —python
<pre name="code" class="python"># -*- coding: utf-8 -*- """ wrapper of oss2. """ import oss2 from PwLogging import PwLogging cl
SpringBoot基於阿里雲OSS上傳檔案
一:需求背景. Web系統開發中,檔案上傳是非常常見的功能,本來也沒啥好說的,就是通過IO流將檔案寫到另外一個地方,這個地方可以是 1. 專案的目錄中的某個資料夾. 2. 本地碟符的某個檔案下. 3. 雲服務OSS裡面.例如七牛雲,
阿里雲OSS上傳檔案工具類
/** * * * 阿里雲OSS上傳檔案工具 * * 支援普通檔案上傳,限制大小檔案上傳,限制大小圖片上傳 * * @version1.0 */public class AliyunOssUtil {private Logger logger =
tp框架 阿里雲oss 上傳 ,刪除,判斷是不是存在
composer require aliyuncs/oss-sdk-php 配置檔案如下 'ALIOSS_CONFIG' => array( 'KEY_ID' => '', 'KEY_SECRET' => '',
Java專案整合阿里雲OSS上傳圖片
工具類: import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import org.slf4j.Lo
關於阿里雲oss上傳圖片之後會被旋轉90度的解決辦法
問題描述:正常的圖片前端上傳到oss成功之後的資源地址。在html上引用的時候被旋轉了90度oss資源地址直接在瀏覽器開啟就不會旋轉問題原因:某些手機拍攝出來的照片可能帶有旋轉引數(存放在照片exif資訊裡面)。而oss資源上傳之後會預設自適應方向所以在img標籤中圖片就被旋轉了90度。 解決辦法:阿里雲給
阿里雲oss上傳與下載
public class OSSClientUtil { //填入相應字串 private static String endpoint = ""; private static String accessKeyId = ""; private static Str
阿里雲 javascript上傳檔案(圖片、視訊、壓縮包等檔案)到 物件儲存 OSS ,返回上傳檔案、圖片、音訊、視訊等URL路徑
目的:前端上傳檔案(圖片、視訊、音訊等)到阿里雲伺服器裡面,並且獲得上傳檔案的URL路徑 前提:首先要買一個阿里雲伺服器,自己百度不會; 第一步:登入阿里雲賬號,點選管理控制檯-->物件儲存 OSS 第二步:新建儲存空間(圖一、圖二) (圖一) (圖二
詳解wordpress如何把檔案儲存到阿里雲OSS上!
自己搞了一個Wordpress的部落格,裝完之後一直晾著沒管,最近閒來開荒。為了減小伺服器的頻寬、儲存、CUP的壓力,決定把部落格中的所有檔案都儲存到阿里雲OSS上面。 關於這個問題,自己去呼叫OSS的SDK然後再去修改wordpress這種方式肯定是費時又費力,哪怕是你閒得蛋疼也不會這麼幹,何況是忙到蛋疼
阿裏雲OSS上傳文件本地調試跨域問題解決
服務 描述 文件 join drivers bsp con res sys 問題描述: 最近後臺說為了提高上傳效率,要前端直接上傳文件到阿裏雲,而不經過後臺。因為在阿裏雲服務器設置的允許源(region)為某個固定的域名下的源(例如*.cheche.com),直接在本地訪問
阿里雲oss掛載到本地及oss檔案的上線記錄
我司的oss主要用來儲存靜態圖片,當前mobile和web站所使用的靜態圖片都放置在oss中使用,因此測試環境和生產環境都存在oss。因此,每次上線需要把測試oss上的檔案上傳到生產的oss上。步驟如下: 1、將目的端(即線上)的bucket掛載到本地的zice機器,使用o
通過阿里雲的上傳路徑獲取EXCEL檔案進行資料讀取
通過需求,要對上傳的EXCEL檔案進行資料讀取併入庫。由於EXCEL是由前端直傳到阿里雲,所以只有一個上傳後的檔案路徑。對於先下載在讀取在刪除的方式覺得十分耗時且無用,所以試圖直接根據URL地址來讀取流,生成EXCEL物件並讀取資料。程式碼如下:public static v
ssh上傳本地檔案到linux伺服器
1、從伺服器上下載檔案scp [email protected]39.107.80.119:/var/www/test.js 把192.168.0.101上的/var/www/test.js
git命令上傳本地檔案到GitHub
git命令上傳本地檔案到GitHub 1.下載git工具 2.繫結使用者 啟動gitBash 繫結使用者名稱和郵箱 在開啟的GIt Bash中輸入以下命令(使用者和郵箱為你github註冊的賬號和郵箱) $ git c
上傳本地檔案到hdfs上
package com.yc.hadoop.hdfs; import java.net.URI; import java.util.Scanner; import org.apache.hadoop.conf.Configuration; import org.apache.
阿里雲OSS上儲存了什麼東西?
阿里雲物件儲存服務(Object Storage Service,簡稱OSS)為您提供基於網路的資料存取服務。使用OSS,您可以通過網路隨時儲存和呼叫包括文字、圖片、音訊和視訊等在內的各種非結構化資料檔案。 阿里雲OSS將資料檔案以物件(object)的形式上傳到儲存空間(bucket)中。
如何使用阿里雲主機搭建Nginx+FastDFS檔案伺服器(超詳細)
關於Netty的話,後面再寫一個小案例,目前沒有時間,專案的內容不好上傳。多嘴了,下面開始今天的內容,由於目前專案要做搭建一個檔案伺服器,想想免費的也只有FastDFS了,於是開始搭建並記錄下來。 1、準備 本次系統使用CentOS7.3,在安裝前需要安裝nginx的一些依賴庫: gcc