日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

美团 java_GitHub - meituan/mssapi_java: 美团云对象存储 Java SDK

發布時間:2024/1/8 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 美团 java_GitHub - meituan/mssapi_java: 美团云对象存储 Java SDK 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MSS(Meituan Storage Service) SDK for Java

This is MSS SDK for Java。

Introduction

MSS服務介紹

美團云存儲服務(Meituan Storage Service, 簡稱MSS),是美團云對外提供的云存儲服務,其具備高可靠,安全,低成本等特性,并且其API兼容S3。MSS適合存放非結構化的數據,比如圖片,視頻,文檔,備份等。

MSS基本概念介紹

MSS的API兼容S3, 其基本概念也和S3相同,主要包括Object, Bucket, Access Key, Secret Key等。

Object對應一個文件,包括數據和元數據兩部分。元數據以key-value的形式構成,它包含一些默認的元數據信息,比如Content-Type, Etag等,用戶也可以自定義元數據。

Bucket是object的容器,每個object都必須包含在一個bucket中。用戶可以創建任意多個bucket。

Access Key和Secret Key: 用戶注冊MSS時,系統會給用戶分配一對Access Key和Secret Key, 用于標識用戶,用戶在使用API使用MSS服務時,需要使用這兩個Key。請在美團云管理控制臺查詢AccessKey和SecretKey。

MSS訪問域名

mtmss.com

Installation

下載MSS SDK for Java包后,進入MSS SDK for Java目錄下,運行"mvn install",即可完成MSS SDK for Java的安裝。

新創建的MSS相關的maven項目,只需要在pom文件的下添加MSS SDK for Java依賴:

com.amazonaws

mss-java-sdk-s3

1.9.4

注意:目前MSS SDK支持的Java版本包括Java1.6,Java1.7和Java1.8。

Quick Start

創建AmazonS3Client

package com.meituan.mss.s3test;

import com.amazonaws.ClientConfiguration;

import com.amazonaws.Protocol;

import com.amazonaws.auth.AWSCredentials;

import com.amazonaws.auth.BasicAWSCredentials;

import com.amazonaws.services.s3.AmazonS3;

import com.amazonaws.services.s3.AmazonS3Client;

import com.amazonaws.services.s3.S3ClientOptions;

import java.io.IOException;

import java.io.InputStream;

import java.net.URL;

import java.util.Properties;

public class AmazonS3ClientProvider {

/**

*

* 創建AmazonS3Client

*

*

* @accessKey:mss用戶的access key

* secretKey:mss用戶的access secret

* url:mss server hostname,一般為mtmss.com

*/

private static String accessKey = "*** accessKey ***";

private static String secretKey = "*** secretKey ***";

private static String url = "http://mtmss.com";

static AmazonS3Client s3conn;

public static AmazonS3 CreateAmazonS3Conn()

throws IOException{

AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);

ClientConfiguration clientConfig = new ClientConfiguration();

//clientConfig.setSignerOverride("S3SignerType");

URL ep = new URL(url);

if (ep.getProtocol().equalsIgnoreCase("http")) {

clientConfig.setProtocol(Protocol.HTTP);

} else if (ep.getProtocol().equalsIgnoreCase("https")) {

clientConfig.setProtocol(Protocol.HTTPS);

} else {

throw new IOException("Unsupported protocol");

}

String endpoint = ep.getHost();

if (ep.getPort() > 0) {

endpoint += ":" + ep.getPort();

}

S3ClientOptions s3ClientOptions = new S3ClientOptions();

// mss only support path style access.

s3ClientOptions.setPathStyleAccess(true);

s3conn = new AmazonS3Client(credentials, clientConfig);

s3conn.setS3ClientOptions(s3ClientOptions);

s3conn.setEndpoint(endpoint);

//s3conn.setSignerRegionOverride("S3SignerType");

return s3conn;

}

}

創建Bucket

import com.amazonaws.AmazonClientException;

import com.amazonaws.AmazonServiceException;

import com.amazonaws.services.s3.AmazonS3;

import com.amazonaws.services.s3.model.AccessControlList;

import com.amazonaws.services.s3.model.Bucket;

import com.meituan.mss.s3test.AmazonS3ClientProvider;

public class CreateBucket {

private static String newBucketName = "mss-test-bucket";

private static AmazonS3 s3Client = AmazonS3ClientProvider.CreateAmazonS3Conn();

public void testCreateBucket_NewBucketNameMatches() {

try {

Bucket bucket = s3Client.createBucket(newBucketName);

} catch (AmazonServiceException ase) {

System.out.println("Caught an AmazonServiceException, which" +

" means your request made it " +

"to Amazon S3, but was rejected with an error response" +

" for some reason.");

System.out.println("Error Message: " + ase.getMessage());

System.out.println("HTTP Status Code: " + ase.getStatusCode());

System.out.println("AWS Error Code: " + ase.getErrorCode());

System.out.println("Error Type: " + ase.getErrorType());

System.out.println("Request ID: " + ase.getRequestId());

} catch (AmazonClientException ace) {

System.out.println("Caught an AmazonClientException, which means"+

" the client encountered " +

"an internal error while trying to " +

"communicate with S3, " +

"such as not being able to access the network.");

System.out.println("Error Message: " + ace.getMessage());

}

}

}

上傳文件

import java.io.File;

import java.io.IOException;

import com.amazonaws.AmazonClientException;

import com.amazonaws.AmazonServiceException;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;

import com.amazonaws.services.s3.AmazonS3;

import com.amazonaws.services.s3.AmazonS3Client;

import com.amazonaws.services.s3.model.PutObjectRequest;

import com.meituan.mss.s3test.AmazonS3ClientProvider;

public class UploadObjectSingleOperation {

private static String bucketName = "*** Provide bucket name ***";

private static String objectName = "*** objectName ***";

private static AmazonS3 s3Client = AmazonS3ClientProvider.CreateAmazonS3Conn();

public void testUploadObject() {

try {

System.out.println("Uploading a new object to S3 from a file\n");

File file = new File(uploadFileName);

s3client.putObject(new PutObjectRequest(

bucketName, objectName, file));

} catch (AmazonServiceException ase) {

System.out.println("Caught an AmazonServiceException, which " +

"means your request made it " +

"to Amazon S3, but was rejected with an error response" +

" for some reason.");

System.out.println("Error Message: " + ase.getMessage());

System.out.println("HTTP Status Code: " + ase.getStatusCode());

System.out.println("AWS Error Code: " + ase.getErrorCode());

System.out.println("Error Type: " + ase.getErrorType());

System.out.println("Request ID: " + ase.getRequestId());

} catch (AmazonClientException ace) {

System.out.println("Caught an AmazonClientException, which " +

"means the client encountered " +

"an internal error while trying to " +

"communicate with S3, " +

"such as not being able to access the network.");

System.out.println("Error Message: " + ace.getMessage());

}

}

}

下載文件

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import com.amazonaws.AmazonClientException;

import com.amazonaws.AmazonServiceException;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;

import com.amazonaws.services.s3.AmazonS3;

import com.amazonaws.services.s3.AmazonS3Client;

import com.amazonaws.services.s3.model.GetObjectRequest;

import com.amazonaws.services.s3.model.S3Object;

import com.meituan.mss.s3test.AmazonS3ClientProvider;

public class GetObject {

private static String bucketName = "*** provide bucket name ***";

private static String objectName = "*** objectName ***";

private static AmazonS3 s3Client = AmazonS3ClientProvider.CreateAmazonS3Conn();

public void getObject() {

try {

System.out.println("Downloading an object");

S3Object s3object = s3Client.getObject(new GetObjectRequest(

bucketName, objectName));

System.out.println("Content-Type: " +

s3object.getObjectMetadata().getContentType());

InputStream objectData = s3object.getObjectContent()

} catch (AmazonServiceException ase) {

System.out.println("Caught an AmazonServiceException, which" +

" means your request made it " +

"to Amazon S3, but was rejected with an error response" +

" for some reason.");

System.out.println("Error Message: " + ase.getMessage());

System.out.println("HTTP Status Code: " + ase.getStatusCode());

System.out.println("AWS Error Code: " + ase.getErrorCode());

System.out.println("Error Type: " + ase.getErrorType());

System.out.println("Request ID: " + ase.getRequestId());

} catch (AmazonClientException ace) {

System.out.println("Caught an AmazonClientException, which means"+

" the client encountered " +

"an internal error while trying to " +

"communicate with S3, " +

"such as not being able to access the network.");

System.out.println("Error Message: " + ace.getMessage());

}

}

}

s3 presign

import com.amazonaws.AmazonClientException;

import com.amazonaws.AmazonServiceException;

import com.amazonaws.HttpMethod;

import com.amazonaws.services.s3.AmazonS3;

import com.amazonaws.services.s3.model.Bucket;

import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;

import com.amazonaws.services.s3.model.ObjectMetadata;

import com.meituan.mss.s3test.AmazonS3ClientProvider;

import com.meituan.mss.s3test.factory.TestS3ObjectFactory;

import junit.framework.Assert;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

import java.io.IOException;

import java.io.InputStream;

import java.net.URL;

import java.util.Date;

import org.apache.commons.httpclient.*;

import org.apache.commons.httpclient.methods.*;

import com.amazonaws.services.s3.model.ResponseHeaderOverrides;

import java.io.*;

public class PreSignURL {

private static String bucketName = "*** provide bucket name ***";

private static String objectName = "*** objectName ***";

private static AmazonS3 s3Client = AmazonS3ClientProvider.CreateAmazonS3Conn();

public void presigntest() {

try {

System.out.println("Generating pre-signed URL.");

java.util.Date expiration = new java.util.Date();

long milliSeconds = expiration.getTime();

milliSeconds += 1000 * 60 * 5; // Add 1 hour.

expiration.setTime(milliSeconds);

//generate Get Bucket presign request

GeneratePresignedUrlRequest generatePresignedUrlRequest =

new GeneratePresignedUrlRequest(bucketName, "");

generatePresignedUrlRequest.setMethod(HttpMethod.GET);

generatePresignedUrlRequest.setExpiration(expiration);

URL url = s3Client.generatePresignedUrl(generatePresignedUrlRequest);

System.out.println("Pre-Signed URL = " + url.toString());

String url_str = url.toString();

HttpClient client = new HttpClient();

GetMethod method = new GetMethod(url_str);

try {

int statusCode = client.executeMethod(method);

Assert.assertEquals(statusCode, 200);

} catch (HttpException e) {

System.err.println("Fatal protocol violation: " + e.getMessage());

e.printStackTrace();

} catch (IOException e) {

System.err.println("Fatal transport error: " + e.getMessage());

e.printStackTrace();

} finally {

// Release the connection.

method.releaseConnection();

}

} catch (AmazonServiceException exception) {

System.out.println("Caught an AmazonServiceException, " +

"which means your request made it " +

"to Amazon S3, but was rejected with an error response " +

"for some reason.");

System.out.println("Error Message: " + exception.getMessage());

System.out.println("HTTP Code: " + exception.getStatusCode());

System.out.println("AWS Error Code:" + exception.getErrorCode());

System.out.println("Error Type: " + exception.getErrorType());

System.out.println("Request ID: " + exception.getRequestId());

} catch (AmazonClientException ace) {

System.out.println("Caught an AmazonClientException, " +

"which means the client encountered " +

"an internal error while trying to communicate" +

" with S3, " +

"such as not being able to access the network.");

System.out.println("Error Message: " + ace.getMessage());

}

}

}

總結

以上是生活随笔為你收集整理的美团 java_GitHub - meituan/mssapi_java: 美团云对象存储 Java SDK的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。