あるクライアントの Plasma ストアに Python オブジェクトを保存していて、それを別のクライアントにロードしたいと考えています。私の考えは、HTTP 要求の一部として ObjectID を渡すことでした。だから私は次のようなものを持っています:
import pyarrow.plasma as plasma
client = plasma.connect("/tmp/plasma")
payload = {"a": 1}
object_id = client.put(payload)
object_str = str(object_id)
print(object_str) # outputs: "ObjectID(8d8e54e5cb547962a6d16ff2869c2c3282ff6550)"
目的のクライアントでは、次のようなことができると期待していました。
import pyarrow.plasma as plasma
client = plasma.connect("/tmp/plasma")
data = client.get("8d8e54e5cb547962a6d16ff2869c2c3282ff6550")
しかし、文字列識別子ではなくオブジェクトclient.get
を期待しているため、これは機能しません。しかし、この識別子を使用してオブジェクトをplasma.ObjectID
作成する方法が見つかりません。plasma.ObjectID
20 バイトを渡す必要があると表示されていますが、この ID から適切な 20 バイトを取得する方法がわかりません。plasma.ObjectID(b'8d8e54e5cb547962a6d16ff2869c2c3282ff6550')
私は役に立たないようなことを試しました。
私が見つけた唯一の機能は、「client.list()」のようにストア内のすべてのオブジェクトを一覧表示し、返された辞書内の ObjectID キーの文字列表現を文字列照合するハックなソリューションです。
意図した設計に従っていない場合は、どうすればよいですか。
- サーバー1のPlasmaにPythonオブジェクトを保存します
- あるサーバーから別のサーバーに HTTP 経由で参照を渡す
- サーバー 2 でこのオブジェクトにアクセスしますか?