tamar-file-hub-client 0.1.2__py3-none-any.whl → 0.1.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,7 +26,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__
26
26
  from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
27
27
 
28
28
 
29
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12\x66ile_service.proto\x12\x04\x66ile\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xab\x01\n\x04\x46ile\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tfolder_id\x18\x02 \x01(\t\x12\x11\n\tfile_name\x18\x03 \x01(\t\x12\x11\n\tfile_type\x18\x04 \x01(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xb7\x02\n\nUploadFile\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tfolder_id\x18\x02 \x01(\t\x12\x0f\n\x07\x66ile_id\x18\x03 \x01(\t\x12\x14\n\x0cstorage_type\x18\x04 \x01(\t\x12\x13\n\x0bstored_name\x18\x05 \x01(\t\x12\x13\n\x0bstored_path\x18\x06 \x01(\t\x12\x11\n\tfile_name\x18\x07 \x01(\t\x12\x11\n\tfile_size\x18\x08 \x01(\x03\x12\x10\n\x08\x66ile_ext\x18\t \x01(\t\x12\x11\n\tmime_type\x18\n \x01(\t\x12\x0e\n\x06status\x18\x0b \x01(\t\x12.\n\ncreated_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xdf\x01\n\x11UploadFileRequest\x12\x16\n\tfolder_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x0f\n\x07\x63ontent\x18\x03 \x01(\x0c\x12\x11\n\tfile_type\x18\x04 \x01(\t\x12\x11\n\tmime_type\x18\x05 \x01(\t\x12\x19\n\x0cis_temporary\x18\x06 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0e\x65xpire_seconds\x18\x07 \x01(\x05H\x02\x88\x01\x01\x42\x0c\n\n_folder_idB\x0f\n\r_is_temporaryB\x11\n\x0f_expire_seconds\"\xf3\x01\n\x10UploadUrlRequest\x12\x16\n\tfolder_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x11\n\tfile_type\x18\x03 \x01(\t\x12\x11\n\tmime_type\x18\x04 \x01(\t\x12\x11\n\tfile_size\x18\x05 \x01(\x03\x12\x11\n\tfile_hash\x18\x06 \x01(\t\x12\x19\n\x0cis_temporary\x18\x07 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0e\x65xpire_seconds\x18\x08 \x01(\x05H\x02\x88\x01\x01\x42\x0c\n\n_folder_idB\x0f\n\r_is_temporaryB\x11\n\x0f_expire_seconds\")\n\x16UploadCompletedRequest\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\"u\n\x12\x44ownloadUrlRequest\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\x12\x13\n\x06is_cdn\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x65xpire_seconds\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_is_cdnB\x11\n\x0f_expire_seconds\"\xd4\x01\n\x10ShareLinkRequest\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\x12\x11\n\tis_public\x18\x02 \x01(\x08\x12\x14\n\x0c\x61\x63\x63\x65ss_scope\x18\x03 \x01(\t\x12\x1b\n\x0e\x65xpire_seconds\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12\x17\n\nmax_access\x18\x05 \x01(\x05H\x01\x88\x01\x01\x12\x1b\n\x0eshare_password\x18\x06 \x01(\tH\x02\x88\x01\x01\x42\x11\n\x0f_expire_secondsB\r\n\x0b_max_accessB\x11\n\x0f_share_password\"\x82\x01\n\x10\x46ileVisitRequest\x12\x15\n\rfile_share_id\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63\x63\x65ss_type\x18\x02 \x01(\t\x12\x17\n\x0f\x61\x63\x63\x65ss_duration\x18\x03 \x01(\x05\x12)\n\x08metadata\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\"!\n\x0eGetFileRequest\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\"6\n\x11RenameFileRequest\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\"$\n\x11\x44\x65leteFileRequest\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\"\x8d\x02\n\x10ListFilesRequest\x12\x16\n\tfolder_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tfile_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\tfile_type\x18\x03 \x03(\t\x12\x1c\n\x0f\x63reated_by_role\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x17\n\ncreated_by\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x16\n\tpage_size\x18\x06 \x01(\x05H\x04\x88\x01\x01\x12\x11\n\x04page\x18\x07 \x01(\x05H\x05\x88\x01\x01\x42\x0c\n\n_folder_idB\x0c\n\n_file_nameB\x12\n\x10_created_by_roleB\r\n\x0b_created_byB\x0c\n\n_page_sizeB\x07\n\x05_page\"{\n\x17\x42\x61tchDownloadUrlRequest\x12\x10\n\x08\x66ile_ids\x18\x01 \x03(\t\x12\x13\n\x06is_cdn\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x65xpire_seconds\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_is_cdnB\x11\n\x0f_expire_seconds\"#\n\x10GetGcsUrlRequest\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\")\n\x15\x42\x61tchGetGcsUrlRequest\x12\x10\n\x08\x66ile_ids\x18\x01 \x03(\t\"U\n\x12UploadFileResponse\x12\x18\n\x04\x66ile\x18\x01 \x01(\x0b\x32\n.file.File\x12%\n\x0bupload_file\x18\x02 \x01(\x0b\x32\x10.file.UploadFile\"a\n\x11UploadUrlResponse\x12\x18\n\x04\x66ile\x18\x01 \x01(\x0b\x32\n.file.File\x12%\n\x0bupload_file\x18\x02 \x01(\x0b\x32\x10.file.UploadFile\x12\x0b\n\x03url\x18\x03 \x01(\t\"\"\n\x13\x44ownloadUrlResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\"*\n\x11ShareLinkResponse\x12\x15\n\rfile_share_id\x18\x01 \x01(\t\"-\n\x10\x46ileListResponse\x12\x19\n\x05\x66iles\x18\x01 \x03(\x0b\x32\n.file.File\"g\n\x0fGetFileResponse\x12\x18\n\x04\x66ile\x18\x01 \x01(\x0b\x32\n.file.File\x12*\n\x0bupload_file\x18\x02 \x01(\x0b\x32\x10.file.UploadFileH\x00\x88\x01\x01\x42\x0e\n\x0c_upload_file\"H\n\x18\x42\x61tchDownloadUrlResponse\x12,\n\rdownload_urls\x18\x01 \x03(\x0b\x32\x15.file.DownloadUrlInfo\"M\n\x0f\x44ownloadUrlInfo\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x12\n\x05\x65rror\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"7\n\x11GetGcsUrlResponse\x12\x0f\n\x07gcs_url\x18\x01 \x01(\t\x12\x11\n\tmime_type\x18\x02 \x01(\t\"<\n\x16\x42\x61tchGetGcsUrlResponse\x12\"\n\x08gcs_urls\x18\x01 \x03(\x0b\x32\x10.file.GcsUrlInfo\"_\n\nGcsUrlInfo\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\x12\x0f\n\x07gcs_url\x18\x02 \x01(\t\x12\x11\n\tmime_type\x18\x03 \x01(\t\x12\x12\n\x05\x65rror\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\x07\n\x05\x45mpty2\xae\x07\n\x0b\x46ileService\x12?\n\nUploadFile\x12\x17.file.UploadFileRequest\x1a\x18.file.UploadFileResponse\x12\x44\n\x11GenerateUploadUrl\x12\x16.file.UploadUrlRequest\x1a\x17.file.UploadUrlResponse\x12M\n\x1aGenerateResumableUploadUrl\x12\x16.file.UploadUrlRequest\x1a\x17.file.UploadUrlResponse\x12\x43\n\x16\x43onfirmUploadCompleted\x12\x1c.file.UploadCompletedRequest\x1a\x0b.file.Empty\x12J\n\x13GenerateDownloadUrl\x12\x18.file.DownloadUrlRequest\x1a\x19.file.DownloadUrlResponse\x12Y\n\x18\x42\x61tchGenerateDownloadUrl\x12\x1d.file.BatchDownloadUrlRequest\x1a\x1e.file.BatchDownloadUrlResponse\x12<\n\tGetGcsUrl\x12\x16.file.GetGcsUrlRequest\x1a\x17.file.GetGcsUrlResponse\x12K\n\x0e\x42\x61tchGetGcsUrl\x12\x1b.file.BatchGetGcsUrlRequest\x1a\x1c.file.BatchGetGcsUrlResponse\x12\x44\n\x11GenerateShareLink\x12\x16.file.ShareLinkRequest\x1a\x17.file.ShareLinkResponse\x12\x30\n\tVisitFile\x12\x16.file.FileVisitRequest\x1a\x0b.file.Empty\x12\x36\n\x07GetFile\x12\x14.file.GetFileRequest\x1a\x15.file.GetFileResponse\x12\x31\n\nRenameFile\x12\x17.file.RenameFileRequest\x1a\n.file.File\x12\x32\n\nDeleteFile\x12\x17.file.DeleteFileRequest\x1a\x0b.file.Empty\x12;\n\tListFiles\x12\x16.file.ListFilesRequest\x1a\x16.file.FileListResponseb\x06proto3')
29
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12\x66ile_service.proto\x12\x04\x66ile\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xab\x01\n\x04\x46ile\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tfolder_id\x18\x02 \x01(\t\x12\x11\n\tfile_name\x18\x03 \x01(\t\x12\x11\n\tfile_type\x18\x04 \x01(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xb7\x02\n\nUploadFile\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tfolder_id\x18\x02 \x01(\t\x12\x0f\n\x07\x66ile_id\x18\x03 \x01(\t\x12\x14\n\x0cstorage_type\x18\x04 \x01(\t\x12\x13\n\x0bstored_name\x18\x05 \x01(\t\x12\x13\n\x0bstored_path\x18\x06 \x01(\t\x12\x11\n\tfile_name\x18\x07 \x01(\t\x12\x11\n\tfile_size\x18\x08 \x01(\x03\x12\x10\n\x08\x66ile_ext\x18\t \x01(\t\x12\x11\n\tmime_type\x18\n \x01(\t\x12\x0e\n\x06status\x18\x0b \x01(\t\x12.\n\ncreated_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x9f\x02\n\x11UploadFileRequest\x12\x16\n\tfolder_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x0f\n\x07\x63ontent\x18\x03 \x01(\x0c\x12\x11\n\tfile_type\x18\x04 \x01(\t\x12\x11\n\tmime_type\x18\x05 \x01(\t\x12\x19\n\x0cis_temporary\x18\x06 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0e\x65xpire_seconds\x18\x07 \x01(\x05H\x02\x88\x01\x01\x12#\n\x16keep_original_filename\x18\x08 \x01(\x08H\x03\x88\x01\x01\x42\x0c\n\n_folder_idB\x0f\n\r_is_temporaryB\x11\n\x0f_expire_secondsB\x19\n\x17_keep_original_filename\"\xb3\x02\n\x10UploadUrlRequest\x12\x16\n\tfolder_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x11\n\tfile_type\x18\x03 \x01(\t\x12\x11\n\tmime_type\x18\x04 \x01(\t\x12\x11\n\tfile_size\x18\x05 \x01(\x03\x12\x11\n\tfile_hash\x18\x06 \x01(\t\x12\x19\n\x0cis_temporary\x18\x07 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0e\x65xpire_seconds\x18\x08 \x01(\x05H\x02\x88\x01\x01\x12#\n\x16keep_original_filename\x18\t \x01(\x08H\x03\x88\x01\x01\x42\x0c\n\n_folder_idB\x0f\n\r_is_temporaryB\x11\n\x0f_expire_secondsB\x19\n\x17_keep_original_filename\")\n\x16UploadCompletedRequest\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\"u\n\x12\x44ownloadUrlRequest\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\x12\x13\n\x06is_cdn\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x65xpire_seconds\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_is_cdnB\x11\n\x0f_expire_seconds\"\xd4\x01\n\x10ShareLinkRequest\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\x12\x11\n\tis_public\x18\x02 \x01(\x08\x12\x14\n\x0c\x61\x63\x63\x65ss_scope\x18\x03 \x01(\t\x12\x1b\n\x0e\x65xpire_seconds\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12\x17\n\nmax_access\x18\x05 \x01(\x05H\x01\x88\x01\x01\x12\x1b\n\x0eshare_password\x18\x06 \x01(\tH\x02\x88\x01\x01\x42\x11\n\x0f_expire_secondsB\r\n\x0b_max_accessB\x11\n\x0f_share_password\"\x82\x01\n\x10\x46ileVisitRequest\x12\x15\n\rfile_share_id\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63\x63\x65ss_type\x18\x02 \x01(\t\x12\x17\n\x0f\x61\x63\x63\x65ss_duration\x18\x03 \x01(\x05\x12)\n\x08metadata\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\"!\n\x0eGetFileRequest\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\"6\n\x11RenameFileRequest\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\"$\n\x11\x44\x65leteFileRequest\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\"\x8d\x02\n\x10ListFilesRequest\x12\x16\n\tfolder_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tfile_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\tfile_type\x18\x03 \x03(\t\x12\x1c\n\x0f\x63reated_by_role\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x17\n\ncreated_by\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x16\n\tpage_size\x18\x06 \x01(\x05H\x04\x88\x01\x01\x12\x11\n\x04page\x18\x07 \x01(\x05H\x05\x88\x01\x01\x42\x0c\n\n_folder_idB\x0c\n\n_file_nameB\x12\n\x10_created_by_roleB\r\n\x0b_created_byB\x0c\n\n_page_sizeB\x07\n\x05_page\"{\n\x17\x42\x61tchDownloadUrlRequest\x12\x10\n\x08\x66ile_ids\x18\x01 \x03(\t\x12\x13\n\x06is_cdn\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x65xpire_seconds\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_is_cdnB\x11\n\x0f_expire_seconds\"#\n\x10GetGcsUrlRequest\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\")\n\x15\x42\x61tchGetGcsUrlRequest\x12\x10\n\x08\x66ile_ids\x18\x01 \x03(\t\"U\n\x12UploadFileResponse\x12\x18\n\x04\x66ile\x18\x01 \x01(\x0b\x32\n.file.File\x12%\n\x0bupload_file\x18\x02 \x01(\x0b\x32\x10.file.UploadFile\"a\n\x11UploadUrlResponse\x12\x18\n\x04\x66ile\x18\x01 \x01(\x0b\x32\n.file.File\x12%\n\x0bupload_file\x18\x02 \x01(\x0b\x32\x10.file.UploadFile\x12\x0b\n\x03url\x18\x03 \x01(\t\"\"\n\x13\x44ownloadUrlResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\"*\n\x11ShareLinkResponse\x12\x15\n\rfile_share_id\x18\x01 \x01(\t\"-\n\x10\x46ileListResponse\x12\x19\n\x05\x66iles\x18\x01 \x03(\x0b\x32\n.file.File\"g\n\x0fGetFileResponse\x12\x18\n\x04\x66ile\x18\x01 \x01(\x0b\x32\n.file.File\x12*\n\x0bupload_file\x18\x02 \x01(\x0b\x32\x10.file.UploadFileH\x00\x88\x01\x01\x42\x0e\n\x0c_upload_file\"H\n\x18\x42\x61tchDownloadUrlResponse\x12,\n\rdownload_urls\x18\x01 \x03(\x0b\x32\x15.file.DownloadUrlInfo\"M\n\x0f\x44ownloadUrlInfo\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x12\n\x05\x65rror\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"7\n\x11GetGcsUrlResponse\x12\x0f\n\x07gcs_url\x18\x01 \x01(\t\x12\x11\n\tmime_type\x18\x02 \x01(\t\"<\n\x16\x42\x61tchGetGcsUrlResponse\x12\"\n\x08gcs_urls\x18\x01 \x03(\x0b\x32\x10.file.GcsUrlInfo\"_\n\nGcsUrlInfo\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\x12\x0f\n\x07gcs_url\x18\x02 \x01(\t\x12\x11\n\tmime_type\x18\x03 \x01(\t\x12\x12\n\x05\x65rror\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\x07\n\x05\x45mpty2\xae\x07\n\x0b\x46ileService\x12?\n\nUploadFile\x12\x17.file.UploadFileRequest\x1a\x18.file.UploadFileResponse\x12\x44\n\x11GenerateUploadUrl\x12\x16.file.UploadUrlRequest\x1a\x17.file.UploadUrlResponse\x12M\n\x1aGenerateResumableUploadUrl\x12\x16.file.UploadUrlRequest\x1a\x17.file.UploadUrlResponse\x12\x43\n\x16\x43onfirmUploadCompleted\x12\x1c.file.UploadCompletedRequest\x1a\x0b.file.Empty\x12J\n\x13GenerateDownloadUrl\x12\x18.file.DownloadUrlRequest\x1a\x19.file.DownloadUrlResponse\x12Y\n\x18\x42\x61tchGenerateDownloadUrl\x12\x1d.file.BatchDownloadUrlRequest\x1a\x1e.file.BatchDownloadUrlResponse\x12<\n\tGetGcsUrl\x12\x16.file.GetGcsUrlRequest\x1a\x17.file.GetGcsUrlResponse\x12K\n\x0e\x42\x61tchGetGcsUrl\x12\x1b.file.BatchGetGcsUrlRequest\x1a\x1c.file.BatchGetGcsUrlResponse\x12\x44\n\x11GenerateShareLink\x12\x16.file.ShareLinkRequest\x1a\x17.file.ShareLinkResponse\x12\x30\n\tVisitFile\x12\x16.file.FileVisitRequest\x1a\x0b.file.Empty\x12\x36\n\x07GetFile\x12\x14.file.GetFileRequest\x1a\x15.file.GetFileResponse\x12\x31\n\nRenameFile\x12\x17.file.RenameFileRequest\x1a\n.file.File\x12\x32\n\nDeleteFile\x12\x17.file.DeleteFileRequest\x1a\x0b.file.Empty\x12;\n\tListFiles\x12\x16.file.ListFilesRequest\x1a\x16.file.FileListResponseb\x06proto3')
30
30
 
31
31
  _globals = globals()
32
32
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -38,55 +38,55 @@ if not _descriptor._USE_C_DESCRIPTORS:
38
38
  _globals['_UPLOADFILE']._serialized_start=266
39
39
  _globals['_UPLOADFILE']._serialized_end=577
40
40
  _globals['_UPLOADFILEREQUEST']._serialized_start=580
41
- _globals['_UPLOADFILEREQUEST']._serialized_end=803
42
- _globals['_UPLOADURLREQUEST']._serialized_start=806
43
- _globals['_UPLOADURLREQUEST']._serialized_end=1049
44
- _globals['_UPLOADCOMPLETEDREQUEST']._serialized_start=1051
45
- _globals['_UPLOADCOMPLETEDREQUEST']._serialized_end=1092
46
- _globals['_DOWNLOADURLREQUEST']._serialized_start=1094
47
- _globals['_DOWNLOADURLREQUEST']._serialized_end=1211
48
- _globals['_SHARELINKREQUEST']._serialized_start=1214
49
- _globals['_SHARELINKREQUEST']._serialized_end=1426
50
- _globals['_FILEVISITREQUEST']._serialized_start=1429
51
- _globals['_FILEVISITREQUEST']._serialized_end=1559
52
- _globals['_GETFILEREQUEST']._serialized_start=1561
53
- _globals['_GETFILEREQUEST']._serialized_end=1594
54
- _globals['_RENAMEFILEREQUEST']._serialized_start=1596
55
- _globals['_RENAMEFILEREQUEST']._serialized_end=1650
56
- _globals['_DELETEFILEREQUEST']._serialized_start=1652
57
- _globals['_DELETEFILEREQUEST']._serialized_end=1688
58
- _globals['_LISTFILESREQUEST']._serialized_start=1691
59
- _globals['_LISTFILESREQUEST']._serialized_end=1960
60
- _globals['_BATCHDOWNLOADURLREQUEST']._serialized_start=1962
61
- _globals['_BATCHDOWNLOADURLREQUEST']._serialized_end=2085
62
- _globals['_GETGCSURLREQUEST']._serialized_start=2087
63
- _globals['_GETGCSURLREQUEST']._serialized_end=2122
64
- _globals['_BATCHGETGCSURLREQUEST']._serialized_start=2124
65
- _globals['_BATCHGETGCSURLREQUEST']._serialized_end=2165
66
- _globals['_UPLOADFILERESPONSE']._serialized_start=2167
67
- _globals['_UPLOADFILERESPONSE']._serialized_end=2252
68
- _globals['_UPLOADURLRESPONSE']._serialized_start=2254
69
- _globals['_UPLOADURLRESPONSE']._serialized_end=2351
70
- _globals['_DOWNLOADURLRESPONSE']._serialized_start=2353
71
- _globals['_DOWNLOADURLRESPONSE']._serialized_end=2387
72
- _globals['_SHARELINKRESPONSE']._serialized_start=2389
73
- _globals['_SHARELINKRESPONSE']._serialized_end=2431
74
- _globals['_FILELISTRESPONSE']._serialized_start=2433
75
- _globals['_FILELISTRESPONSE']._serialized_end=2478
76
- _globals['_GETFILERESPONSE']._serialized_start=2480
77
- _globals['_GETFILERESPONSE']._serialized_end=2583
78
- _globals['_BATCHDOWNLOADURLRESPONSE']._serialized_start=2585
79
- _globals['_BATCHDOWNLOADURLRESPONSE']._serialized_end=2657
80
- _globals['_DOWNLOADURLINFO']._serialized_start=2659
81
- _globals['_DOWNLOADURLINFO']._serialized_end=2736
82
- _globals['_GETGCSURLRESPONSE']._serialized_start=2738
83
- _globals['_GETGCSURLRESPONSE']._serialized_end=2793
84
- _globals['_BATCHGETGCSURLRESPONSE']._serialized_start=2795
85
- _globals['_BATCHGETGCSURLRESPONSE']._serialized_end=2855
86
- _globals['_GCSURLINFO']._serialized_start=2857
87
- _globals['_GCSURLINFO']._serialized_end=2952
88
- _globals['_EMPTY']._serialized_start=2954
89
- _globals['_EMPTY']._serialized_end=2961
90
- _globals['_FILESERVICE']._serialized_start=2964
91
- _globals['_FILESERVICE']._serialized_end=3906
41
+ _globals['_UPLOADFILEREQUEST']._serialized_end=867
42
+ _globals['_UPLOADURLREQUEST']._serialized_start=870
43
+ _globals['_UPLOADURLREQUEST']._serialized_end=1177
44
+ _globals['_UPLOADCOMPLETEDREQUEST']._serialized_start=1179
45
+ _globals['_UPLOADCOMPLETEDREQUEST']._serialized_end=1220
46
+ _globals['_DOWNLOADURLREQUEST']._serialized_start=1222
47
+ _globals['_DOWNLOADURLREQUEST']._serialized_end=1339
48
+ _globals['_SHARELINKREQUEST']._serialized_start=1342
49
+ _globals['_SHARELINKREQUEST']._serialized_end=1554
50
+ _globals['_FILEVISITREQUEST']._serialized_start=1557
51
+ _globals['_FILEVISITREQUEST']._serialized_end=1687
52
+ _globals['_GETFILEREQUEST']._serialized_start=1689
53
+ _globals['_GETFILEREQUEST']._serialized_end=1722
54
+ _globals['_RENAMEFILEREQUEST']._serialized_start=1724
55
+ _globals['_RENAMEFILEREQUEST']._serialized_end=1778
56
+ _globals['_DELETEFILEREQUEST']._serialized_start=1780
57
+ _globals['_DELETEFILEREQUEST']._serialized_end=1816
58
+ _globals['_LISTFILESREQUEST']._serialized_start=1819
59
+ _globals['_LISTFILESREQUEST']._serialized_end=2088
60
+ _globals['_BATCHDOWNLOADURLREQUEST']._serialized_start=2090
61
+ _globals['_BATCHDOWNLOADURLREQUEST']._serialized_end=2213
62
+ _globals['_GETGCSURLREQUEST']._serialized_start=2215
63
+ _globals['_GETGCSURLREQUEST']._serialized_end=2250
64
+ _globals['_BATCHGETGCSURLREQUEST']._serialized_start=2252
65
+ _globals['_BATCHGETGCSURLREQUEST']._serialized_end=2293
66
+ _globals['_UPLOADFILERESPONSE']._serialized_start=2295
67
+ _globals['_UPLOADFILERESPONSE']._serialized_end=2380
68
+ _globals['_UPLOADURLRESPONSE']._serialized_start=2382
69
+ _globals['_UPLOADURLRESPONSE']._serialized_end=2479
70
+ _globals['_DOWNLOADURLRESPONSE']._serialized_start=2481
71
+ _globals['_DOWNLOADURLRESPONSE']._serialized_end=2515
72
+ _globals['_SHARELINKRESPONSE']._serialized_start=2517
73
+ _globals['_SHARELINKRESPONSE']._serialized_end=2559
74
+ _globals['_FILELISTRESPONSE']._serialized_start=2561
75
+ _globals['_FILELISTRESPONSE']._serialized_end=2606
76
+ _globals['_GETFILERESPONSE']._serialized_start=2608
77
+ _globals['_GETFILERESPONSE']._serialized_end=2711
78
+ _globals['_BATCHDOWNLOADURLRESPONSE']._serialized_start=2713
79
+ _globals['_BATCHDOWNLOADURLRESPONSE']._serialized_end=2785
80
+ _globals['_DOWNLOADURLINFO']._serialized_start=2787
81
+ _globals['_DOWNLOADURLINFO']._serialized_end=2864
82
+ _globals['_GETGCSURLRESPONSE']._serialized_start=2866
83
+ _globals['_GETGCSURLRESPONSE']._serialized_end=2921
84
+ _globals['_BATCHGETGCSURLRESPONSE']._serialized_start=2923
85
+ _globals['_BATCHGETGCSURLRESPONSE']._serialized_end=2983
86
+ _globals['_GCSURLINFO']._serialized_start=2985
87
+ _globals['_GCSURLINFO']._serialized_end=3080
88
+ _globals['_EMPTY']._serialized_start=3082
89
+ _globals['_EMPTY']._serialized_end=3089
90
+ _globals['_FILESERVICE']._serialized_start=3092
91
+ _globals['_FILESERVICE']._serialized_end=4034
92
92
  # @@protoc_insertion_point(module_scope)
@@ -61,6 +61,7 @@ message UploadFileRequest {
61
61
  string mime_type = 5;
62
62
  optional bool is_temporary = 6;
63
63
  optional int32 expire_seconds = 7;
64
+ optional bool keep_original_filename = 8; // 保留原始文件名,默认false
64
65
  }
65
66
 
66
67
  message UploadUrlRequest {
@@ -72,6 +73,7 @@ message UploadUrlRequest {
72
73
  string file_hash = 6;
73
74
  optional bool is_temporary = 7;
74
75
  optional int32 expire_seconds = 8;
76
+ optional bool keep_original_filename = 9; // 保留原始文件名,默认false
75
77
  }
76
78
 
77
79
  message UploadCompletedRequest {
@@ -39,6 +39,7 @@ class AsyncBlobService(BaseFileService):
39
39
  mime_type: Optional[str] = None,
40
40
  is_temporary: Optional[bool] = False,
41
41
  expire_seconds: Optional[int] = None,
42
+ keep_original_filename: Optional[bool] = False,
42
43
  request_id: Optional[str] = None,
43
44
  **metadata
44
45
  ) -> FileUploadResponse:
@@ -53,6 +54,7 @@ class AsyncBlobService(BaseFileService):
53
54
  mime_type: MIME类型
54
55
  is_temporary: 是否为临时文件
55
56
  expire_seconds: 过期秒数
57
+ keep_original_filename: 是否保留原始文件名(默认False)
56
58
  request_id: 请求ID(可选,如果不提供则自动生成)
57
59
  **metadata: 额外的元数据(如 x-org-id, x-user-id 等)
58
60
 
@@ -86,6 +88,7 @@ class AsyncBlobService(BaseFileService):
86
88
  mime_type=mime_type or "application/octet-stream",
87
89
  is_temporary=is_temporary,
88
90
  expire_seconds=expire_seconds if is_temporary and expire_seconds else None,
91
+ keep_original_filename=keep_original_filename,
89
92
  )
90
93
 
91
94
  if folder_id:
@@ -114,6 +117,7 @@ class AsyncBlobService(BaseFileService):
114
117
  file_hash: str,
115
118
  is_temporary: Optional[bool] = False,
116
119
  expire_seconds: Optional[int] = None,
120
+ keep_original_filename: Optional[bool] = False,
117
121
  request_id: Optional[str] = None,
118
122
  **metadata
119
123
  ) -> FileUploadResponse:
@@ -129,6 +133,7 @@ class AsyncBlobService(BaseFileService):
129
133
  file_hash=file_hash,
130
134
  is_temporary=is_temporary,
131
135
  expire_seconds=expire_seconds if is_temporary and expire_seconds else None,
136
+ keep_original_filename=keep_original_filename,
132
137
  request_id=request_id,
133
138
  **metadata
134
139
  )
@@ -172,6 +177,7 @@ class AsyncBlobService(BaseFileService):
172
177
  file_hash: str,
173
178
  is_temporary: Optional[bool] = False,
174
179
  expire_seconds: Optional[int] = None,
180
+ keep_original_filename: Optional[bool] = False,
175
181
  request_id: Optional[str] = None,
176
182
  **metadata
177
183
  ) -> FileUploadResponse:
@@ -186,6 +192,7 @@ class AsyncBlobService(BaseFileService):
186
192
  file_hash=file_hash,
187
193
  is_temporary=is_temporary,
188
194
  expire_seconds=expire_seconds if is_temporary and expire_seconds else None,
195
+ keep_original_filename=keep_original_filename,
189
196
  request_id=request_id,
190
197
  **metadata
191
198
  )
@@ -256,6 +263,7 @@ class AsyncBlobService(BaseFileService):
256
263
  file_hash: Optional[str] = None,
257
264
  is_temporary: Optional[bool] = False,
258
265
  expire_seconds: Optional[int] = None,
266
+ keep_original_filename: Optional[bool] = False,
259
267
  request_id: Optional[str] = None,
260
268
  **metadata
261
269
  ) -> UploadUrlResponse:
@@ -271,6 +279,8 @@ class AsyncBlobService(BaseFileService):
271
279
  file_hash: 文件哈希
272
280
  is_temporary: 是否为临时文件
273
281
  expire_seconds: 过期秒数
282
+ keep_original_filename: 是否保留原始文件名(默认False)
283
+ request_id: 请求ID(可选,如果不提供则自动生成)
274
284
  **metadata: 额外的元数据(如 x-org-id, x-user-id 等)
275
285
 
276
286
  Returns:
@@ -288,6 +298,7 @@ class AsyncBlobService(BaseFileService):
288
298
  file_hash=file_hash,
289
299
  is_temporary=is_temporary,
290
300
  expire_seconds=expire_seconds if is_temporary and expire_seconds else None,
301
+ keep_original_filename=keep_original_filename,
291
302
  )
292
303
 
293
304
  if folder_id:
@@ -314,6 +325,7 @@ class AsyncBlobService(BaseFileService):
314
325
  file_hash: str = None,
315
326
  is_temporary: Optional[bool] = False,
316
327
  expire_seconds: Optional[int] = None,
328
+ keep_original_filename: Optional[bool] = False,
317
329
  request_id: Optional[str] = None,
318
330
  **metadata
319
331
  ) -> UploadUrlResponse:
@@ -329,6 +341,7 @@ class AsyncBlobService(BaseFileService):
329
341
  file_hash: 文件哈希
330
342
  is_temporary: 是否为临时文件
331
343
  expire_seconds: 过期秒数
344
+ keep_original_filename: 是否保留原始文件名(默认False)
332
345
  request_id: 请求ID(可选,如果不提供则自动生成)
333
346
  **metadata: 额外的元数据(如 x-org-id, x-user-id 等)
334
347
 
@@ -349,6 +362,7 @@ class AsyncBlobService(BaseFileService):
349
362
  file_hash=file_hash,
350
363
  is_temporary=is_temporary,
351
364
  expire_seconds=expire_seconds if is_temporary and expire_seconds else None,
365
+ keep_original_filename=keep_original_filename,
352
366
  )
353
367
 
354
368
  if folder_id:
@@ -373,6 +387,7 @@ class AsyncBlobService(BaseFileService):
373
387
  mode: Optional[UploadMode] = UploadMode.NORMAL,
374
388
  is_temporary: Optional[bool] = False,
375
389
  expire_seconds: Optional[int] = None,
390
+ keep_original_filename: Optional[bool] = False,
376
391
  url: Optional[str] = None,
377
392
  file_name: Optional[str] = None,
378
393
  request_id: Optional[str] = None,
@@ -387,6 +402,7 @@ class AsyncBlobService(BaseFileService):
387
402
  mode: 上传模式(NORMAL/DIRECT/RESUMABLE/STREAM)
388
403
  is_temporary: 是否为临时文件
389
404
  expire_seconds: 过期秒数
405
+ keep_original_filename: 是否保留原始文件名(默认False)
390
406
  url: 要下载并上传的URL(可选)
391
407
  file_name: 当使用url参数时指定的文件名(可选)
392
408
  request_id: 请求ID(可选,如果不提供则自动生成)
@@ -461,6 +477,7 @@ class AsyncBlobService(BaseFileService):
461
477
  mime_type=mime_type,
462
478
  is_temporary=is_temporary,
463
479
  expire_seconds=expire_seconds,
480
+ keep_original_filename=keep_original_filename,
464
481
  request_id=request_id,
465
482
  **metadata
466
483
  )
@@ -477,6 +494,7 @@ class AsyncBlobService(BaseFileService):
477
494
  file_hash=file_hash,
478
495
  is_temporary=is_temporary,
479
496
  expire_seconds=expire_seconds,
497
+ keep_original_filename=keep_original_filename,
480
498
  request_id=request_id,
481
499
  **metadata
482
500
  )
@@ -493,6 +511,7 @@ class AsyncBlobService(BaseFileService):
493
511
  file_hash=file_hash,
494
512
  is_temporary=is_temporary,
495
513
  expire_seconds=expire_seconds,
514
+ keep_original_filename=keep_original_filename,
496
515
  request_id=request_id,
497
516
  **metadata
498
517
  )
@@ -37,6 +37,7 @@ class SyncBlobService(BaseFileService):
37
37
  mime_type: Optional[str] = None,
38
38
  is_temporary: Optional[bool] = False,
39
39
  expire_seconds: Optional[int] = None,
40
+ keep_original_filename: Optional[bool] = False,
40
41
  request_id: Optional[str] = None,
41
42
  **metadata
42
43
  ) -> FileUploadResponse:
@@ -51,6 +52,7 @@ class SyncBlobService(BaseFileService):
51
52
  mime_type: MIME类型
52
53
  is_temporary: 是否为临时文件
53
54
  expire_seconds: 过期秒数
55
+ keep_original_filename: 是否保留原始文件名(默认False)
54
56
  request_id: 请求ID(可选,如果不提供则自动生成)
55
57
  **metadata: 额外的元数据(如 x-org-id, x-user-id 等)
56
58
 
@@ -84,6 +86,7 @@ class SyncBlobService(BaseFileService):
84
86
  mime_type=mime_type or "application/octet-stream",
85
87
  is_temporary=is_temporary,
86
88
  expire_seconds=expire_seconds,
89
+ keep_original_filename=keep_original_filename,
87
90
  )
88
91
 
89
92
  if folder_id:
@@ -112,6 +115,7 @@ class SyncBlobService(BaseFileService):
112
115
  file_hash: str,
113
116
  is_temporary: Optional[bool] = False,
114
117
  expire_seconds: Optional[int] = None,
118
+ keep_original_filename: Optional[bool] = False,
115
119
  request_id: Optional[str] = None,
116
120
  **metadata
117
121
  ) -> FileUploadResponse:
@@ -126,6 +130,7 @@ class SyncBlobService(BaseFileService):
126
130
  file_hash=file_hash,
127
131
  is_temporary=is_temporary,
128
132
  expire_seconds=expire_seconds if is_temporary and expire_seconds else None,
133
+ keep_original_filename=keep_original_filename,
129
134
  request_id=request_id,
130
135
  **metadata
131
136
  )
@@ -169,6 +174,7 @@ class SyncBlobService(BaseFileService):
169
174
  file_hash: str,
170
175
  is_temporary: Optional[bool] = False,
171
176
  expire_seconds: Optional[int] = None,
177
+ keep_original_filename: Optional[bool] = False,
172
178
  request_id: Optional[str] = None,
173
179
  **metadata
174
180
  ) -> FileUploadResponse:
@@ -183,6 +189,7 @@ class SyncBlobService(BaseFileService):
183
189
  file_hash=file_hash,
184
190
  is_temporary=is_temporary,
185
191
  expire_seconds=expire_seconds if is_temporary and expire_seconds else None,
192
+ keep_original_filename=keep_original_filename,
186
193
  request_id=request_id,
187
194
  **metadata
188
195
  )
@@ -254,6 +261,7 @@ class SyncBlobService(BaseFileService):
254
261
  file_hash: str = None,
255
262
  is_temporary: Optional[bool] = False,
256
263
  expire_seconds: Optional[int] = None,
264
+ keep_original_filename: Optional[bool] = False,
257
265
  request_id: Optional[str] = None,
258
266
  **metadata
259
267
  ) -> UploadUrlResponse:
@@ -269,6 +277,8 @@ class SyncBlobService(BaseFileService):
269
277
  file_hash: 文件哈希
270
278
  is_temporary: 是否为临时文件
271
279
  expire_seconds: 过期秒数
280
+ keep_original_filename: 是否保留原始文件名(默认False)
281
+ request_id: 请求ID(可选,如果不提供则自动生成)
272
282
  **metadata: 额外的元数据(如 x-org-id, x-user-id 等)
273
283
 
274
284
  Returns:
@@ -286,6 +296,7 @@ class SyncBlobService(BaseFileService):
286
296
  file_hash=file_hash,
287
297
  is_temporary=is_temporary,
288
298
  expire_seconds=expire_seconds if is_temporary and expire_seconds else None,
299
+ keep_original_filename=keep_original_filename,
289
300
  )
290
301
 
291
302
  if folder_id:
@@ -312,6 +323,7 @@ class SyncBlobService(BaseFileService):
312
323
  file_hash: str = None,
313
324
  is_temporary: Optional[bool] = False,
314
325
  expire_seconds: Optional[int] = None,
326
+ keep_original_filename: Optional[bool] = False,
315
327
  request_id: Optional[str] = None,
316
328
  **metadata
317
329
  ) -> UploadUrlResponse:
@@ -327,6 +339,7 @@ class SyncBlobService(BaseFileService):
327
339
  file_hash: 文件哈希
328
340
  is_temporary: 是否为临时文件
329
341
  expire_seconds: 过期秒数
342
+ keep_original_filename: 是否保留原始文件名(默认False)
330
343
  request_id: 请求ID(可选,如果不提供则自动生成)
331
344
  **metadata: 额外的元数据(如 x-org-id, x-user-id 等)
332
345
 
@@ -347,6 +360,7 @@ class SyncBlobService(BaseFileService):
347
360
  file_hash=file_hash,
348
361
  is_temporary=is_temporary,
349
362
  expire_seconds=expire_seconds if is_temporary and expire_seconds else None,
363
+ keep_original_filename=keep_original_filename,
350
364
  )
351
365
 
352
366
  if folder_id:
@@ -371,6 +385,7 @@ class SyncBlobService(BaseFileService):
371
385
  mode: Optional[UploadMode] = UploadMode.NORMAL,
372
386
  is_temporary: Optional[bool] = False,
373
387
  expire_seconds: Optional[int] = None,
388
+ keep_original_filename: Optional[bool] = False,
374
389
  url: Optional[str] = None,
375
390
  file_name: Optional[str] = None,
376
391
  request_id: Optional[str] = None,
@@ -385,6 +400,7 @@ class SyncBlobService(BaseFileService):
385
400
  mode: 上传模式(NORMAL/DIRECT/RESUMABLE/STREAM)
386
401
  is_temporary: 是否为临时文件
387
402
  expire_seconds: 过期秒数
403
+ keep_original_filename: 是否保留原始文件名(默认False)
388
404
  url: 要下载并上传的URL(可选)
389
405
  file_name: 当使用url参数时指定的文件名(可选)
390
406
  request_id: 请求ID(可选,如果不提供则自动生成)
@@ -459,6 +475,7 @@ class SyncBlobService(BaseFileService):
459
475
  mime_type=mime_type,
460
476
  is_temporary=is_temporary,
461
477
  expire_seconds=expire_seconds if is_temporary and expire_seconds else None,
478
+ keep_original_filename=keep_original_filename,
462
479
  request_id=request_id,
463
480
  **metadata
464
481
  )
@@ -475,6 +492,7 @@ class SyncBlobService(BaseFileService):
475
492
  file_hash=file_hash,
476
493
  is_temporary=is_temporary,
477
494
  expire_seconds=expire_seconds if is_temporary and expire_seconds else None,
495
+ keep_original_filename=keep_original_filename,
478
496
  request_id=request_id,
479
497
  **metadata
480
498
  )
@@ -491,6 +509,7 @@ class SyncBlobService(BaseFileService):
491
509
  file_hash=file_hash,
492
510
  is_temporary=is_temporary,
493
511
  expire_seconds=expire_seconds if is_temporary and expire_seconds else None,
512
+ keep_original_filename=keep_original_filename,
494
513
  request_id=request_id,
495
514
  **metadata
496
515
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tamar-file-hub-client
3
- Version: 0.1.2
3
+ Version: 0.1.3
4
4
  Summary: A Python SDK for gRPC-based file management system
5
5
  Home-page: https://github.com/Tamar-Edge-AI/file-hub-client
6
6
  Author: Oscar Ou
@@ -641,6 +641,30 @@ async with AsyncTamarFileHubClient() as client:
641
641
  )
642
642
  ```
643
643
 
644
+ #### 保留原始文件名上传
645
+
646
+ ```python
647
+ from file_hub_client import AsyncTamarFileHubClient
648
+
649
+ async with AsyncTamarFileHubClient() as client:
650
+ # 设置用户上下文
651
+ client.set_user_context(org_id="123", user_id="456")
652
+
653
+ # 上传时保留原始文件名
654
+ file_info = await client.blobs.upload(
655
+ "document.pdf",
656
+ keep_original_filename=True # 保留原始文件名,默认为False
657
+ )
658
+
659
+ # 也可以指定文件夹和其他参数
660
+ file_info = await client.blobs.upload(
661
+ "report.xlsx",
662
+ folder_id="folder-123",
663
+ keep_original_filename=True, # 保留原始文件名
664
+ is_temporary=False
665
+ )
666
+ ```
667
+
644
668
  ### 文件下载
645
669
 
646
670
  File Hub Client 提供了统一的下载接口,支持两种结构返回:
@@ -2154,6 +2178,7 @@ MIT License
2154
2178
  - 新增批量下载URL生成接口 (batch_generate_download_url)
2155
2179
  - 新增GCS URL获取接口 (get_gcs_url, batch_get_gcs_url)
2156
2180
  - GCS URL接口返回MIME类型信息,便于文件类型识别
2181
+ - 新增 keep_original_filename 参数支持保留原始文件名
2157
2182
  - 更新相关文档和测试用例
2158
2183
 
2159
2184
  ### v0.0.4 (2025-01)
@@ -13,13 +13,13 @@ file_hub_client/rpc/generate_grpc.py,sha256=opzstxWdW7vqR9OxrgUCSUkZe8IqgcOdruqW
13
13
  file_hub_client/rpc/interceptors.py,sha256=UeQ8u-olMiYwScXJrlzqPS-odGomH-h3xJqOwPznRUo,22071
14
14
  file_hub_client/rpc/sync_client.py,sha256=ZWBmP-TU8eeAfl2lV8sLu9nsxo_aOPAVmt9ww_T8Hwg,14054
15
15
  file_hub_client/rpc/gen/__init__.py,sha256=NJLqr9ezUXeOyy1J0sMPn3Kl_8IyGw7GAzzzewO3MIw,45
16
- file_hub_client/rpc/gen/file_service_pb2.py,sha256=f6PkMS-JGFtDSpbqv77Bf-QqOGY__osHg6WmUtuxlLY,11009
16
+ file_hub_client/rpc/gen/file_service_pb2.py,sha256=KphiN6KuksPPDP-PKuTo1COKTAO0M1XsCm0as2BC2Qc,11211
17
17
  file_hub_client/rpc/gen/file_service_pb2_grpc.py,sha256=F7u-n6doSz1HxmaYAL0y_nNB1NVR8CRlZVKAMe63P4A,26083
18
18
  file_hub_client/rpc/gen/folder_service_pb2.py,sha256=OPNYHThmL1k2KH1ll2L_Gj76oWBWqcymXKHu8mk1Zvk,4126
19
19
  file_hub_client/rpc/gen/folder_service_pb2_grpc.py,sha256=pOHFsVThdAu5DAKd8QK3_zQvUmFgGlh4KBqIYnYDZ_U,10411
20
20
  file_hub_client/rpc/gen/taple_service_pb2.py,sha256=8BJCFRFJ_khl_Uaw-5jWCabljWJo6zaqOYWe1368xEw,48254
21
21
  file_hub_client/rpc/gen/taple_service_pb2_grpc.py,sha256=DCL-45PlEZ0guLz1u2fFH_sDIT_awuSvp9Ak6fa2GO8,64773
22
- file_hub_client/rpc/protos/file_service.proto,sha256=d6xMVohY3_tLJOQv1nV04pNUlgTM-9v9bkZYnebzraE,4821
22
+ file_hub_client/rpc/protos/file_service.proto,sha256=fekeTjDP_qaWL8EPVblH2EV_7xnWVTZgoIX7sAUNZ8Y,4995
23
23
  file_hub_client/rpc/protos/folder_service.proto,sha256=cgIbJT2slXMMRGrtrzN3kjae9-4CB1zXCmceiUgE6fI,1542
24
24
  file_hub_client/rpc/protos/taple_service.proto,sha256=0mwhyBwD3yvFhMiiSA6J3Ni6pyHc369iD4oDXXl7DIU,29765
25
25
  file_hub_client/schemas/__init__.py,sha256=9BvyqWBkeEav47vUBZ6eDyCt_iKATCOwakcrmOTdVWA,2396
@@ -29,10 +29,10 @@ file_hub_client/schemas/folder.py,sha256=D7UFsLCou-7CCXCQvuRObaBQEGmETsm1cgGOG1c
29
29
  file_hub_client/schemas/taple.py,sha256=LYsECsDbcioPXcvjRBcCEbh083iEB-eFCapJrGMJ8w0,17790
30
30
  file_hub_client/services/__init__.py,sha256=yh5mir0dKB_LtJMk2hTpQI9WSlguaxtVD2KomMnzxdM,514
31
31
  file_hub_client/services/file/__init__.py,sha256=aJygo_AzYk5NN-ezp-a9YlugJ82wVIP9e5e54fl0UsI,342
32
- file_hub_client/services/file/async_blob_service.py,sha256=St0FdvzSpJJErhJ3V1vCSSbRN14jggEMS9U8QPqZFiQ,24716
32
+ file_hub_client/services/file/async_blob_service.py,sha256=qOUFvkNyjDsFHNpLpjqIB0z5xF2KkFlgpa3HblEPXYg,25962
33
33
  file_hub_client/services/file/async_file_service.py,sha256=wJuoy-3CiIow5Xef_4JNJRKEOoMTKfs9nxqbkaYI4Ig,9110
34
34
  file_hub_client/services/file/base_file_service.py,sha256=wTxplrTk9klfwIHOPfTL0TQd6gX4nEmkYtIhpiZ3GVo,4791
35
- file_hub_client/services/file/sync_blob_service.py,sha256=3VbJGuW7PHCQFK-ip0Y2NRnU39ps3rHnQoxFQp46e3s,24443
35
+ file_hub_client/services/file/sync_blob_service.py,sha256=IcbXzyoZHNHzE3aDZ69M5AOqJk4-mR0w0TKyohjEGHQ,25689
36
36
  file_hub_client/services/file/sync_file_service.py,sha256=fMTq91dXwZzuMsPTZ1whaQBxzpyHfSP-A4W15pWSNfs,8964
37
37
  file_hub_client/services/folder/__init__.py,sha256=vGbMOlNiEBdnWZB1xE74RJtoroI28hKHCWfQV1GqKQc,210
38
38
  file_hub_client/services/folder/async_folder_service.py,sha256=uFEmtW8EXYvaKYT2JCitWbdTGR1EtHlx_eBN5P3JUZg,7293
@@ -51,7 +51,7 @@ file_hub_client/utils/logging.py,sha256=IxcvWkA0G9s9BMiXIeFAdJX5G-Lc5-JFlS2yxOX1
51
51
  file_hub_client/utils/retry.py,sha256=A2MBdJCEY-Ks0guq8dd5wXX22sD27N30Qy3nQIW1B_s,18019
52
52
  file_hub_client/utils/smart_retry.py,sha256=RjBhyG6SNDfMXxNxKU_qayWDD6Ihp7ow6_BPjhgflM0,16465
53
53
  file_hub_client/utils/upload_helper.py,sha256=gEtn9OXVJiGUpVev_fqrDnRQ6AFiiP9goLzFrVpqXmU,22569
54
- tamar_file_hub_client-0.1.2.dist-info/METADATA,sha256=IDzFkdNun5NF-ugAkJ7URmNpga0Hh9e9RzsYCFp3aAU,70429
55
- tamar_file_hub_client-0.1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
56
- tamar_file_hub_client-0.1.2.dist-info/top_level.txt,sha256=9wcR7hyAJQdJg_kuH6WR3nmpJ8O-j8aJNK8f_kcFy6U,16
57
- tamar_file_hub_client-0.1.2.dist-info/RECORD,,
54
+ tamar_file_hub_client-0.1.3.dist-info/METADATA,sha256=t8Ohoetv3OYCeon2R4G8WivDCQloG_kXLCTntdszx2o,71188
55
+ tamar_file_hub_client-0.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
56
+ tamar_file_hub_client-0.1.3.dist-info/top_level.txt,sha256=9wcR7hyAJQdJg_kuH6WR3nmpJ8O-j8aJNK8f_kcFy6U,16
57
+ tamar_file_hub_client-0.1.3.dist-info/RECORD,,