本文檔介紹如何批量新增和刪除圖片。

背景信息

Image Search與阿里雲OSS服務打通,可以通過大量操作功能將OSS中的圖片大量匯入到Image Search中,同時也可以通過大量操作功能大量刪除已經入庫的圖片資料資訊。大量操作適用於較大規模的離線圖片資料操作。其特點為:穩定性高、速度快、操作方便等。如果涉及到大規模圖片新增或者刪除,建議採用大量操作方式進行。

大量操作流程

  1. 開通OSS服務。
  2. 將圖片匯入到OSS中。
  3. 建立increment.meta檔案。
  4. 授予Image Search服務訪問OSS的許可權。
  5. 在Image Search上建立批量任務。

開通OSS服務

如果您尚未開通OSS服務,請參見開通OSS服務進行開通。開通服務後,您還需要建立儲存空間Bucket,具體請參見建立儲存空間
说明
  • 開通的OSS為獨立計費,具體計費方式請參見計費概述
  • 請確保開通的OSS服務與已購買的Image Search服務在同一地區,否則將無法使用大量操作功能。

將圖片匯入到OSS中

匯入圖片

具體操作請參見上傳檔案
说明 圖片存放路徑可以自訂,只需要在建立批量任務時設定圖片路徑即可。

建立increment.meta檔案

在OSS服務中存放圖片的路徑下,建立increment.meta檔案,該檔案用來儲存批量任務相關內容。
说明 increment.meta檔案中涉及的圖片必須和increment.meta檔案在同一路徑下,否則大量操作會失敗。
檔案參考樣本如下:
{"OperationType": "ADD","ProductId": "1000","PicName": "girl_cloth1.jpg","CategoryId": 0,"IntAttr": 0,"StrAttr": "value1","CustomContent": "k1:v1,k2:v2,k3:v3","Region": "20,40,60,80"}
{"OperationType": "ADD","ProductId": "1000","PicName": "girl_cloth2.jpg","CategoryId": 0,"IntAttr": 0,"StrAttr": "value2","CustomContent": "k1:v1,k2:v2,k3:v3","Region": "20,40,60,80"}
{"OperationType": "ADD","ProductId": "1001","PicName": "girl_cloth3.jpg","CategoryId": 1,"CustomContent": "k1:v1,k2:v2,k3:v3"}
{"OperationType": "ADD","ProductId": "1002","PicName": "girl_cloth4.jpg","CategoryId": 0,"CustomContent": "k1:v1,k2:v2,k3:v3","Crop": false}
{"OperationType": "ADD","ProductId": "1003","PicName": "girl_cloth7.jpg","CustomContent": "https://www.aliyun.com/imagesearch/girl_cloth7.jpg"}
{"OperationType": "ADD","ProductId": "1003","PicName": "girl_cloth6.jpg","CustomContent": "k1:v1,k2:v2,k3:v3"}
{"OperationType": "DELETE","ProductId": "1004","PicName": "fengyi.jpg"}
{"OperationType": "DELETE","ProductId": "1005"}
每個圖片由JSON格式表示,具體欄位含義如下表所示:
參數 類型 是否必選 說明
OperationType String 操作類型。
  • ADD:新增圖片。
  • DELETE:刪除圖片。
ProductId String 圖片唯一識別碼。
PicName String 圖片名稱。OSS的Bucket中圖片名稱。
说明 每行最多隻允許填寫1個圖片名稱。若同一個ProductId,對應多個PicName則需要填寫多行。
CategoryId Integer 類目參考
  • 對於商品搜尋,如果設定類目,則以設定的為準,並且設定的類目必須在類目參考的範圍之內,否則會入庫失敗;如果不設定類目,將由系統進行類目預測,預測的類目結果可在Response中擷取。
  • 對於布料、商標、通用搜尋,不論是否設定類目,系統會將類目設定為88888888。
CustomContent String 使用者自訂內容。最多支援4096個字元。
IntAttr Integer 整數類型屬性。用於查詢時設定過濾。
StrAttr String 字串類型屬性。最多支援128字元。用於查詢時設定過濾。
Crop Boolean 是否進行主體識別。預設為ture。
  • true:系統自動進行主體識別,以識別的主體進行搜尋。
  • false:不進行主體識別,以整張圖進行搜尋。
说明 服務類型為布料圖片搜尋時,此參數不生效,預設以整張圖進行搜尋。
Region String 圖片的主體地區。格式為x1,x2,y1,y2,其中x1和y1是左上方的點,x2和y2是右下角的點。
说明
  • 若設定了該參數,則Crop參數不生效,以該設定為準。
  • 服務類型為布料圖片搜尋時,此參數不生效,預設以整張圖進行搜尋。

授予Image Search服務訪問OSS的許可權

Image Search服務通過OSS來實現資料大量操作,需要您通過STS(Security Token Service)為Image Search服務帳號授權。

  1. 建立RAM角色。
    1. 登入RAM控制台
    2. 單擊RAM角色管理 > 建立RAM角色
      大量操作-建立RAM角色
    3. 角色類型選擇阿里雲服務
      大量操作-阿里雲服務
    4. 配置角色資訊。
      • 角色類型:選擇為普通服務角色
      • 角色名稱:自訂設定。本文樣本設定為imagesearch-test。
      • 選擇受信服務:選擇為Image Search
      大量操作-建立RAM角色
  2. 建立權限原則。
    1. 單擊許可權管理 > 權限原則管理
    2. 單擊建立權限原則
      大量操作-建立權限原則
    3. 編輯權限原則內容。
      • 設定策略名稱稱。
      • 選擇配置模式指令碼配置。策略內容如下:
        {
          "Version": "1",
          "Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "oss:GetObject"
              ],
              "Resource": [
                "acs:oss:*:*:${bucket}/${path}/*"
              ]
            }
          ]
        }
        • ${bucket}:表示您在OSS上建立的Bucket。例如imagesearch-increment。
        • ${path}:表示您的增量檔案儲存體的路徑。例如/increment。
      大量操作-建立策略
  3. 進行授權。
    1. 在RAM控制台單擊RAM角色管理
    2. 單擊建立的RAM角色。
      授權操作
    3. 單擊添加許可權
      添加許可權
    4. 單擊自訂策略並選擇已建立的權限原則。
      大量操作-授權操作
    5. 在詳情頁可以看到已經添加的自訂權限原則。
      查看自訂權限原則

建立批量任務

  1. 登入Image Search控制台
  2. 選擇目標服務類型和目標執行個體。
  3. 單擊大量操作頁簽。
    大量操作
  4. 單擊建立批量任務
    建立批量任務
  5. 設定批量任務參數。
    • 資源名稱(Arn)
      查看方式如下所示。大量操作-資源名稱
    • Bucket名稱
      OSS上建立的相應的Bucket名稱。
      说明 請確保開通的OSS服務與已購買的Image Search服務在同一個地區。
    • 資料路徑
      需要上傳的圖片和increment.meta檔案的儲存路徑。
      说明 路徑以/開頭,例如/imagesearch
      大量操作-資料路徑

后续步骤

在執行個體詳情頁,查看所有批量任務的資訊。批量任務狀態為成功後,使用者可以查看相應的提示資訊:intl
  • 如果提示資訊為“部分照片處理失敗,已為您分離,點擊下載”,則表明該增量任務中有部分圖片處理失敗,使用者可以下載相應檔案查看處理失敗的原因。
  • 如果提示資訊為成功,則表明該任務中所有的圖片均已處理成功。