1. 程式人生 > >AWS Toolkit for eclipse Java 開發以及Amazon S3使用簡單介紹

AWS Toolkit for eclipse Java 開發以及Amazon S3使用簡單介紹

        前陣子為了將AWS Lambda function 從VS上.NET遷移至Linux系統,所以選擇以前使用過的Eclipse搭配Java語言來實現。

   進入主題,首先我們需要按照官方的說明安裝好Eclipse Java EE和AWS Toolkit,官方引導傳送門: http://docs.amazonaws.cn/toolkit-for-eclipse/v1/user-guide/setup-install.html點選開啟連結;需要注意的是,AWS Toolkit連結https://aws.amazon.com/eclipse點選開啟連結在eclipse中Install new Software 似乎無法加載出來,建議直接開啟該地址,然後從Github下載最新的安裝包,之後在eclipse直接新增安裝包位置安裝(這個跟ADT安裝一樣的)。

     正式使用之前有一個很重要的步驟,註冊一個Amazon賬戶,然後準備好AccessId和SecretKey、IAM role,還有S3 bucket,具體步驟請自行參考Amazon官方說明。   

     安裝完成之後,一般會提示重啟eclipse,之後會需要輸入AccessId和SecretKey作為AWS Toolkit的Credential,重啟後第一次會直接跳出視窗讓你輸入,選擇取消後也可以從Window-->Preferences-->AWS Toolkit進行新增;再從Perspective-->Customize Perspective...讓AWS Toolkit顯示在工具欄,就可以從工具欄選擇New AWS Lambda Java Project了。當然,這裡你也可以選擇其他project型別,但本文僅介紹Lambda Project和Lambda function。選擇建立新的AWS專案時,輸入專案名稱、專案包名,選擇RequestHandler引數型別,我這裡是選擇自定義custom,確認後,請保持網路暢通,等待自動下載aws-sdk等依賴並最終生成專案。

    生成專案後,我們可以在/src/main/java峽找到預設的class,裡面僅有一個handlerRequest方法,我們可以根據需求修改函式的input引數(第一個)和output引數(第二個),這裡需要注意class Implement 的Requesthandler後面的引數型別需要同步修改;

   接下來需要訪問S3儲存了,但考慮到程式碼中Access Id等資料的安全性,建議先在Amazon service console--> Lambda,建立一個Function,在configuration中,Function code部分選擇Runtime Java8,handler裡輸入包名和方法名;新增Environment Variables,記錄一些重要的常量;回到頂部,點選Save。

   我們再回到eclipse在handlerRequest中新增需要執行的程式碼,首先取得環境變數比如access id,然後例項化AmazonS3;

                String access_id = System.getenv("ACCESS_ID");    //get Environment Variables
        String secret_key = System.getenv("SECRET_KEY");
        AWSCredentials credentials = new BasicAWSCredentials(access_id,secret_key);
    AmazonS3 s3Client =  AmazonS3ClientBuilder.standard().withCredentials(

    new AWSStaticCredentialsProvider(credentials)).build();    // new a Amazon S3 Client object

之後通過s3Client 取得bucket和key對應的Object和InputStream並且逐行讀出;

    S3Object object = s3Client.getObject(bucketName,key); //get S3 object by bucketName and key

        if(object!=null){
            System.out.println("Content-Type: " + object.getObjectMetadata().getContentType());
           
            InputStream input = null;
            String line;           
            try {
                input=object.getObjectContent(); //get object content inputStream
                BufferedReader reader = new BufferedReader(new InputStreamReader(input));                                

                while ((line = reader.readLine()) != null && !line.isEmpty()) { //read line  

                            //deal with your function here

                 }

            } catch (IOException e) {
            e.printStackTrace();
            }finally{
                if(input!=null){
                    try {
                        input.close();  //read finish and close
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }

        }

以上僅僅是S3下載某個檔案的簡單舉例,希望對大家有些參考價值。

相關推薦

AWS Toolkit for eclipse Java 開發以及Amazon S3使用簡單介紹

        前陣子為了將AWS Lambda function 從VS上.NET遷移至Linux系統,所以選擇以前使用過的Eclipse搭配Java語言來實現。   進入主題,首先我們需要按照官方的說明安裝好Eclipse Java EE和AWS Toolkit,官方引導

AWS Toolkit for Eclipse

Amazon Web Services is Hiring. Amazon Web Services (AWS) is a dynamic, growing business unit within Amazon.com. We are currently hiring So

Testing Lambda functions using the AWS Toolkit for Eclipse

In this blog post, I will introduce how to test AWS Lambda functions in Eclipse by using the AWS Toolkit for Eclipse. The AWS Toolkit for Eclipse

Alibaba Cloud Toolkit for Eclipse & ECS、EDAS 或容器服務 Kubernetes

3.3 iyu common .html log 阿裏雲 後臺管理 paas mscs UserGuide_V2.1.0http://toolkit.aliyun.com/eclipse/?spm=5176.2020520130.105.3.3c3b697bOHma9f&a

eclipse外掛開發以及打包使用

一、摘要 主要是把現有的java專案打包成eclipse外掛,方便使用。 二、java專案打包 有兩種打包,1是可以把整個專案包括所依賴的lib打成一個jar檔案,2是隻是src相關檔案打包(這種方式在外掛專案中需要把所有依賴的lib包新增到classpath中) 步驟(方

eclipse+java 開發的webservice在釋出到tomcat中使其不帶專案名

在開發WEBService介面時,由於和第三方約定好了wsdl地址,因此在釋出到tomcat不能帶專案名,比如在釋出後訪問的帶專案名的網址是:http://192.168.0.33:8080/LSCS

Eclipse Java開發環境的搭建

基本 text 屬性 img 程序 sub eve 相關 http   (2019年2月19日註:這篇文章原先發表在自己github那邊的博客,時間是2016年9月6日)   工作室的老人家們和小朋友們組成了一個Java開發學習團隊,想起之前在暑假項目中學過一點Java基礎

<java>枚舉的簡單介紹

pic spi str spa 枚舉類 lee string line 舉例 1.枚舉,enum關鍵字,相當於public final static. 2.舉例: 首先定義了一個名為spiciness的枚舉類型。 public enum Spiciness {

iOS開發中指紋識別簡單介紹

Owner rep nsthread 進行 dao self tex 簡單 min 中指紋識別簡單介紹,在iphone系列中,是從5S以後開始有了指紋識別的功能,在ios8的時候開放的指紋驗證的接口。 所以我們在進行指紋識別應用的時候要去判斷機型以及系統的版本。 代

Amazon S3 功能介紹

tlist summary UC cee let ktr mode cto secret 引自:https://blog.csdn.net/tomcat_2014/article/details/50582547 一 .Amazon S3介紹 Amazon Simple S

iOS開發UI篇—UIWindow簡單介紹

沒有 src alt 建議 不能 text 局部變量 lba bubuko iOS開發UI篇—UIWindow簡單介紹 一、簡單介紹 UIWindow是一種特殊的UIView,通常在一個app中只會有一個UIWindow iOS程序啟動完畢後,創建的第一個視圖控件就是UIW

JDBC 入門介紹以及 DAO 模式簡單介紹

JDBC(Java Database Connectivity) 使用步驟 下載 JDBC 相應資料庫的 jar 包加入專案下的 lib 資料夾中 此處使用 mysql,對應 mysql 的 jar 包下載地址: mysql-connector-java-8.0.13.jar

前端開發IDE之webstorm簡單介紹

webstorm簡單介紹   欲先善其事,必先利其器,如題。 我們可以理解 IDE 就是集成了很多你想要的功能,或者你不想要的功能。換句話說就是裝了很多外掛的 editor ,所以到目前為止,我還覺得沒必要給它裝什麼外掛。 那麼接下來開始介紹webstrom的特色功能:

iOS開發資料庫篇 — SQLite簡單介紹

iOS開發資料庫篇 — SQLite簡單介紹一、離線快取在專案開發中,通常都需要對資料進行離線快取的處理,如新聞資料的離線快取等。說明:離線快取一般都是把資料儲存到專案的沙盒中。有以下幾種方式(1)歸檔:NSCodeing、NSKeyedArchiver(2)偏好設定:NSUserDefaults(3)Pli

Java設計模式 - 原型模式簡單介紹及其例項應用

一:原型模式的定義?   定義:用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。   簡單地講:給定一個原型物件來指明所要建立的物件的型別,然後用拷貝這個原型物件的方法來創建出更多的同類型物件。   二:JAVA中原型模式的實現? &n

kubernetes(k8s)以及涉及元件簡單介紹

什麼是kubernetes?         Kubernetes是一個全新的基於容器技術的分散式架構領先方案。是Google內部叢集管理系統Borg的一個開源版本。直到2015年4月,隨著論文釋出,才被眾人熟知。Kubernetes是一個開放的開發平臺。不侷限於任何一種

Java中操作符使用的簡單介紹

操作符Operator    一般情況下,不用去刻意記住操作符的優先順序,當不能確定操作符的執行順序時,可以使用圓括號來顯示指定運算順序。   1) 賦值操作符: =      //int x=0,i=1,j=1;      *=     //a*=b 等價於 a=a*b

關於版本控制軟體以及Git的簡單介紹

以下內容從Pro Git這本書獲取,該書的PDF下載連結 https://git-scm.com/book/zh/v2 本章介紹開始使用 Git 前的相關知識。我們會先了解一些版本控制工具的歷史背景,然後試著讓 Git 在你的系統上跑起來,直到最後配置好,可以正

iOS開發UI篇—Modal簡單介紹

created dal 添加 copy 項目 warning 註意點 ndt 簡單介紹 iOS開發UI篇—Modal簡單介紹 一、簡單介紹 除了push之外,還有另外一種控制器的切換方式,那就是Modal 任何控制器都能通過Modal的形式展?出來 Modal的默認效果

iOS開發UI篇—UITabBarController簡單介紹

gif 什麽 div ins 簡單介紹 out hit cati create 一、簡單介紹 UITabBarController和UINavigationController類似,UITabBarController也可以輕松地管理多個控制器,輕松完成控制器之間