快速入門
阿里云對象存儲OSS與智能媒體管理(IMM)深度結(jié)合,支持文檔預(yù)覽、文檔格式轉(zhuǎn)換、人臉識別、圖片分析、二維碼識別等豐富的數(shù)據(jù)分析處理操作。本文介紹如何通過OSS使用IMM的相關(guān)功能。
前提條件
僅華北 2(北京)、華東 1(杭州)、華東 2(上海)、華南 1(深圳)、華北 3(張家口)、新加坡地域的存儲空間支持使用IMM。
無地域?qū)傩缘拇鎯臻g不支持使用IMM。
已開通IMM服務(wù)并完成授權(quán)。關(guān)于開通服務(wù)及授權(quán)的具體操作,請參見開通產(chǎn)品及創(chuàng)建項目。
如果您通過RAM用戶使用IMM相關(guān)功能,需確保RAM用戶擁有以下權(quán)限。
系統(tǒng)權(quán)限:
AliyunOSSReadOnlyAccess
和AliyunIMMFullAccess
關(guān)于為RAM用戶授權(quán)的具體操作,請參見為RAM用戶授權(quán)。
自定義權(quán)限:
oss:ProcessImm
和ram:GetRole
為RAM用戶授予自定義權(quán)限時,您需要先創(chuàng)建對應(yīng)的自定義權(quán)限,然后為RAM用戶授權(quán)。具體操作,請參見為RAM用戶授予自定義的權(quán)限策略。
費用說明
創(chuàng)建IMM Project及使用IMM功能會產(chǎn)生一定的費用。詳細費用,請參見計費說明。
步驟一:綁定IMM
登錄OSS管理控制臺。
單擊Bucket 列表,然后單擊目標Bucket名稱。
在左側(cè)導(dǎo)航欄,選擇
。單擊綁定,選擇需要使用的功能。
IMM提供以下三個功能:
在綁定對話框的IMM配置欄,選擇以下兩種綁定方式:
創(chuàng)建默認Project:輸入Project的名稱,系統(tǒng)會自動在存儲空間所在的地域創(chuàng)建對應(yīng)的IMM Project,并將其與當前存儲空間綁定。
綁定已有Project:在下拉列表中選擇需要綁定至存儲空間的IMM Project。
重要僅在存儲空間所在的地域創(chuàng)建了對應(yīng)功能的IMM Project的情況下,才能看到綁定已有Project的選項。關(guān)于創(chuàng)建IMM Project的具體操作,請參見創(chuàng)建項目。
您也可以在智能媒體標簽頁單擊批量創(chuàng)建,然后在功能配置對話框中指定綁定項目名稱,批量綁定多個IMM功能。
通過這種方式只能綁定自動新建的IMM Project,無法綁定已有的IMM Project。如果指定的項目名稱與已有的項目名稱相同,則無法綁定。
單擊確定。
步驟二:使用IMM
單擊Bucket 列表,然后單擊目標Bucket名稱。
在左側(cè)導(dǎo)航欄,選擇文件管理 > 文件列表。
單擊要處理的圖片或文檔文件的名稱,在詳情對話框中直接使用IMM的相關(guān)功能。
您也可以單擊目標文件右側(cè)的詳情,打開詳情對話框。
以下代碼用于通過OSS Java SDK使用IMM。
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.model.GeneratePresignedUrlRequest;
import java.net.URL;
import java.util.Date;
public class Demo {
// Endpoint以華東1(杭州)為例,其它Region請按實際情況填寫。
private static String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
static EnvironmentVariableCredentialsProvider credentialsProvider;
static {
try {
credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
} catch (com.aliyuncs.exceptions.ClientException e) {
e.printStackTrace();
}
}
// 填寫B(tài)ucket名稱,例如examplebucket。
private static String bucketName = "examplebucket";
// 填寫Object完整路徑,完整路徑中不能包含Bucket名稱。
private static String objectKey = "example.jpg";
public static void main(String[] args) {
// 獲取Object人臉識別的簽名URL。
URL url = getUrl("imm/detectface", bucketName, objectKey);
customerPrint(url);
bucketName = "examplebucket";
objectKey = "example.txt";
// 獲取Object文檔預(yù)覽的簽名URL。
url = getUrl("imm/previewdoc", bucketName, objectKey);
customerPrint(url);
}
private static void customerPrint(URL url){
if(url != null){
System.out.println(url.toString());
}else{
System.out.println("獲取URL失敗");
}
}
private static URL getUrl(String process, String bucketName, String objectKey) {
// 創(chuàng)建OSSClient實例。
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
try {
GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, objectKey);
request.setProcess(process);
// 設(shè)置簽名URL過期時間,單位為毫秒。
request.setExpiration(new Date(new Date().getTime() + 3600 * 1000));
return ossClient.generatePresignedUrl(request);
} catch (OSSException oe) {
System.out.println("Error Message:" + oe.getErrorMessage());
System.out.println("Error Code:" + oe.getErrorCode());
System.out.println("Request ID:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Error Message:" + ce.getMessage());
} finally {
// 關(guān)閉OSSClient。
ossClient.shutdown();
}
return null;
}
}
(可選)解綁IMM
如果您不再需要使用IMM的功能,可以將存儲空間與IMM解綁,避免產(chǎn)生額外的費用。
單擊Bucket 列表,然后單擊目標Bucket名稱。
在左側(cè)導(dǎo)航欄,選擇 。
在需要解綁的IMM右側(cè),選擇>解綁。
單擊確定。