import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.UUID; import com.amazonaws.auth.PropertiesCredentials; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.model.CannedAccessControlList; import com.amazonaws.services.s3.model.PutObjectRequest; public class UploadAmazonS3 { private MusicInfo music; public UploadAmazonS3(MusicInfo info) { this.music = info; } public static AmazonS3 s3 = null; public static void createS3() throws Exception{ s3 = new AmazonS3Client(new PropertiesCredentials( UploadAmazonS3.class.getResourceAsStream("AwsCredentials.properties"))); } public void run() { String key = ""; String uuid = UUID.randomUUID().toString(); try { // upload mp3 ring key = uuid + music.getRingName(); File file = new File(Consts.NEW_DOWNLOAD_DIR+music.getRingName()); s3.putObject(new PutObjectRequest(Consts.AMAZON_RING_BUCKET, key, file)); // upload ring s3.setObjectAcl(Consts.AMAZON_RING_BUCKET, key, CannedAccessControlList.PublicRead); // set access // upload m4r ring String m4r = music.getRingName().replace(".mp3", ".m4r"); key = uuid + m4r; file = new File(Consts.NEW_DOWNLOAD_DIR+m4r); s3.putObject(new PutObjectRequest(Consts.AMAZON_M4R_BUCKET, key, file)); // upload ring s3.setObjectAcl(Consts.AMAZON_M4R_BUCKET, key, CannedAccessControlList.PublicRead); // set access // upload image key = uuid + music.getImageName(); file = new File(Consts.NEW_DOWNLOAD_DIR+music.getImageName()); s3.putObject(new PutObjectRequest(Consts.AMAZON_IMAGE_BUCKET, key, file)); // upload image s3.setObjectAcl(Consts.AMAZON_IMAGE_BUCKET, key, CannedAccessControlList.PublicRead); // set access // store xml file storeMusicInfo(uuid); } catch (Exception e) { System.out.println("transmit to S3 err"); e.printStackTrace(); } } public void storeMusicInfo(String uuid) { int number = SyncMabilo.getNumber(); File file = new File(Consts.NEW_DOWNLOAD_DIR+number+".xml"); if(file.exists()) { System.out.println(file.getName()+" already exist"); return ; } BufferedWriter out = null; try { out = new BufferedWriter(new FileWriter(file)); out.write("<Record>\n"); out.write("<UUID>" + uuid + "</UUID>\n"); out.write("<Title>" + music.getTitle() + "</Title>\n"); out.write("<Artist>" + music.getArtist() + "</Artist>\n"); out.write("<Category>" + music.getAlbum() + "</Category>\n"); out.write("<Mark>" + music.getmScore() + "</Mark>\n"); out.write("<Size>" + music.getSize() + "</Size>\n"); out.write("<Downloads>" + music.getmCounts() + "</Downloads>\n"); out.write("<Ring>" + music.getRingName() + "</Ring>\n"); out.write("<Image>" + music.getImageName() + "</Image>\n"); out.write("</Record>"); out.flush(); }catch (IOException e) { System.out.println(file.getName() + " write err"); e.printStackTrace(); }finally { if(out != null) try { out.close(); } catch (Exception e2) {} } } }