mirror of https://github.com/usememos/memos.git
57 lines
1.2 KiB
Protocol Buffer
57 lines
1.2 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package memos.store;
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
import "store/instance_setting.proto";
|
|
|
|
option go_package = "gen/store";
|
|
|
|
enum AttachmentStorageType {
|
|
ATTACHMENT_STORAGE_TYPE_UNSPECIFIED = 0;
|
|
// Attachment is stored locally. AKA, local file system.
|
|
LOCAL = 1;
|
|
// Attachment is stored in S3.
|
|
S3 = 2;
|
|
// Attachment is stored in an external storage. The reference is a URL.
|
|
EXTERNAL = 3;
|
|
}
|
|
|
|
enum MotionMediaFamily {
|
|
MOTION_MEDIA_FAMILY_UNSPECIFIED = 0;
|
|
APPLE_LIVE_PHOTO = 1;
|
|
ANDROID_MOTION_PHOTO = 2;
|
|
}
|
|
|
|
enum MotionMediaRole {
|
|
MOTION_MEDIA_ROLE_UNSPECIFIED = 0;
|
|
STILL = 1;
|
|
VIDEO = 2;
|
|
CONTAINER = 3;
|
|
}
|
|
|
|
message MotionMedia {
|
|
MotionMediaFamily family = 1;
|
|
MotionMediaRole role = 2;
|
|
string group_id = 3;
|
|
int64 presentation_timestamp_us = 4;
|
|
bool has_embedded_video = 5;
|
|
}
|
|
|
|
message AttachmentPayload {
|
|
oneof payload {
|
|
S3Object s3_object = 1;
|
|
}
|
|
|
|
MotionMedia motion_media = 10;
|
|
|
|
message S3Object {
|
|
StorageS3Config s3_config = 1;
|
|
// key is the S3 object key.
|
|
string key = 2;
|
|
// last_presigned_time is the last time the object was presigned.
|
|
// This is used to determine if the presigned URL is still valid.
|
|
google.protobuf.Timestamp last_presigned_time = 3;
|
|
}
|
|
}
|