https://help.aliyun.com/document_detail/84781.html?spm=a2c4g.11186623.4.1.7bef59aakn5jmz
Object Storage Service,簡稱 OSS,是阿里雲提供的海量、安全、低成本、高可靠的雲存儲服務。
它具有與平臺無關的RESTful API接口,能夠提供99.999999999%的服務持久性。
使用場景:
圖片分享
熱點視頻
下面介紹一些基本功能:
初始化 創建存儲空間 上傳文件 跨域訪問設置 設置讀寫權限
1.初始化
創建一個OssClient,就可以很方便的調用OSS的方法。
const string accessKeyId = "xxxxxxxxx";
const string accessKeySecret = "xxxxxxxxxx";
const string endpoint = "oss-cn-beijing.aliyuncs.com"; //OSS對應的區域地址
private static OssClient ossClient = new OssClient(endpoint, accessKeyId, accessKeySecret);
2.創建存儲空間
很簡單,只需要調用OssClient.CreateBucket
ossClient.CreateBucket("myBucket"); //新建一個Bucket
3.設置讀寫權限
調用OssClient.SetBucketAcl
ossClient.SetBucketAcl("myBucket", CannedAccessControlList.PublicRead); //設置爲公共讀
CannedAccessControlList有三個屬性:Private(私有),PublicRead(公共讀),PublicReadWrite(公共讀寫)
4.跨域訪問設置
調用OssClient.SetBucketCors
var req = new SetBucketCorsRequest("myBucket");
var rule = new CORSRule();
//指定允許跨域請求的來源
rule.AddAllowedOrigin("*");
//指定允許的跨域請求方法(GET/PUT/DELETE/POST/HEAD)
rule.AddAllowedMethod("POST");
//控制在OPTIONS預取指令中Access-Control-Request-Headers頭中指定的header是否允許。
rule.AddAllowedHeader("*");
req.AddCORSRule(rule);
ossClient.SetBucketCors(req);
5.上傳文件
調用OssClient.PutObject
var result = ossClient.PutObject("myBucket", "111.mp4", @"d:\237badef-0f6d-4a8e-a634-a44c9704b6e6.mp4");
Console.WriteLine(result.ETag);
6.列出存儲空間中的所有文件
調用ossClient.ListObjects
var listObjectsRequest = new ListObjectsRequest("myBucket");
var result = ossClient.ListObjects(listObjectsRequest);
Console.WriteLine("List objects succeeded");
foreach (var summary in result.ObjectSummaries)
{
Console.WriteLine("File name:{0}", summary.Key);
}
詳細筆記-jsweb直接提交:
http://www.cnblogs.com/wumian1360/p/8486726.html
阿里事例:
// Endpoint以杭州爲例,其它Region請按實際情況填寫。
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 阿里雲主賬號AccessKey擁有所有API的訪問權限,風險很高。強烈建議您創建並使用RAM賬號進行API訪問或日常運維,請登錄 https://ram.console.aliyun.com 創建RAM賬號。
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 創建OSSClient實例。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 上傳文件。<yourLocalFile>由本地文件路徑加文件名包括後綴組成,例如/users/local/myfile.txt。
ossClient.putObject("<yourBucketName>", "<yourObjectName>", new File("<yourLocalFile>"));
// 關閉OSSClient。
ossClient.shutdown();
記錄;
@Autowired
private OdsConfig config;
public String put(String key, String name, InputStream io, long length, String contentType) {
OSSClient client = new OSSClient(config.getEndpoint(), config.getAk(), config.getSk());
ObjectMetadata meta = new ObjectMetadata();
meta.setContentLength(length);
meta.setContentType(contentType);
String path = key + "/" + name;
PutObjectResult result = client.putObject(config.getBucket(), path, io, meta);
System.out.println(meta.getETag());
System.out.println(result.getETag());
return config.getBaseUrl() + "/" + path;
}
@Test
public void testPutObject() throws IOException {
String filename = "dog.png";
File file = new File("D:\\" + filename);
InputStream io = FileUtils.openInputStream(file);
long length = file.length();
String url = ossService.put("animals", filename, io, length, "");
System.out.println(url);
}