🍣

ArchivematicaのAPIを試す(Archivematica API編)

2023/02/09に公開

概要

「ArchivematicaのAPIを試す」のArchivematica APi編です。(別に、「Storage Service API」があります。)

https://www.archivematica.org/en/docs/archivematica-1.13/dev-manual/api/api-reference-archivematica/#api-reference-archivematica

今回は、以下の「Transfer」を試します。

https://www.archivematica.org/en/docs/archivematica-1.13/dev-manual/api/api-reference-archivematica/#transfer

使い方

以下のノートブックでお試しいただけます。

https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/ArchivematicaのAPIを使ってみる.ipynb

以下のような記述が必要でした。ロケーションのUUIDは、ストレージサービスから確認しました。

## サーバの設定
endpoint = "http://<ドメイン>:81/api"
username = "<ユーザ名>"
api_key = "<APIキー>"
location_uuid = "<ロケーションのUUID>"

## Transferの設定
name = "mc_api_transfer"
type = "standard"
accession = "2023-1234"
paths = ["files/movie_test"]
row_ids = [""]

## base64へエンコード
import base64
paths_encoded = []
for path in paths:
  path_encoded = base64.b64encode(f"{location_uuid}:{path}".encode()).decode()
  paths_encoded.append(path_encoded)
  
## POST
import requests
data = {
    "name": name,
    "type": type,
    "accession": accession,
    "paths[]": paths_encoded,
    "row_ids[]": row_ids
}
headers = {'Authorization': f'ApiKey {username}:{api_key}'}
response = requests.post(f'{endpoint}/transfer/start_transfer/', headers=headers, data=data)

まとめ

今回はStart transferのみを試しましたが、各操作に対するAPIが提供されており、色々なシステム連携ができそうでした。

Discussion