2013-01-06 69 views
0

我想構建一個小項目。亞馬遜AWS - 從網站下載圖像並操作它們

何做到我這樣做:

1)自動從一個已知的Internet地址下載RGB圖像到Amazon AWS。 2)將圖像轉換爲灰度(最終會做更高級的圖像處理)。 3)在亞馬遜AWS中存儲灰度圖像。

4)能夠在Web瀏覽器中查看/下載灰度圖像。

我知道的編程語言是matlab,和基本的java(OOP大學課程)。

有沒有一步一步的指導?

我應該從哪裏開始?

+1

試過什麼了嗎? – fge

+1

我的建議是,你開始研究任務編號1,然後當你有真正的問題時回來。 –

回答

0

請閱讀java.net.HttpURLConnection的文檔,瞭解如何使用Java下載文件。

然後閱讀http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/index.html,其中解釋瞭如何下載並上傳到Amazon S3。這裏是S3的行動從Java的例子:

//---------------------------------------------------------------------  
// Amazon S3 
//---------------------------------------------------------------------  
class S3 extends AmazonS3Client 
{final String bucket; 
    S3(String u, String p, String Bucket) 
    {super(new BasicAWSCredentials(u, p)); 
    bucket = Bucket; 
    } 
    boolean put(String k, String v)  
    {try 
    {final ByteArrayInputStream b = new ByteArrayInputStream(v.toString().getBytes()); 
     putObject(bucket, k, b, new ObjectMetadata()); 
     setObjectAcl(bucket, k, CannedAccessControlList.PublicRead); // Has to be here to allow change to reduced redundancy 
     changeObjectStorageClass(bucket, k, StorageClass.ReducedRedundancy); 
     setObjectAcl(bucket, k, CannedAccessControlList.PublicRead); // Has to be repeated because it is now a new object again 
     return true; 
    } 
    catch(Exception e) {log("Cannot put "+bucket+"/"+k+" to S3 because "+e);} 
    return false; 
    } 
    String get(String k) 
    {try 
    {final S3Object f = getObject(bucket, k); 
     final BufferedInputStream i = new BufferedInputStream(f.getObjectContent()); 
     final StringBuilder s = new StringBuilder(); 
     final byte[]b = new byte[1024]; 
     for(int n = i.read(b); n != -1; n = i.read(b)) {s.append(new String(b, 0, n));} 
     return s.toString(); 
    } 
    catch(Exception e) {log("Cannot get "+bucket+"/"+k+" from S3 because "+e);} 
    return null; 
    } 
    String[]list(String d) 
    {try 
    {final ObjectListing l = listObjects(bucket, d); 
     final List<S3ObjectSummary> L = l.getObjectSummaries(); 
     final int n = L.size(); 
     final String[]s = new String[n]; 
     for(int i = 0; i < n; ++i) 
     {final S3ObjectSummary k = L.get(i); 
     s[i] = k.getKey(); 
     } 
     return s; 
    } 
    catch(Exception e) {log("Cannot list "+bucket+"/"+d+" on S3 because "+e);} 
    return new String[]{}; 
    } 
} 

}

一旦你在Amazon S3上的圖像,可以使文件公開可見的,所以顯示在任何Web瀏覽器。