{ "info": { "author": "wwb", "author_email": "416713448@qq.com", "bugtrack_url": null, "classifiers": [], "description": "# Fdfs_client py\n\nThe Python interface to the Fastdfs Ver 4.06.\n\n## Installation\n\n $ sudo python setup.py install\n\n## Getting Started\n\t1. import fdfs_client.client module\n\t2. instantiate class Fdfs_client\n\t3. call memeber functions\n\n >>> from fdfs_client.client import *\n >>> client = Fdfs_client('/etc/fdfs/client.conf')\n >>> ret = client.upload_by_filename('test')\n\t>>> ret\n\t{'Group name':'group1','Status':'Upload successed.', 'Remote file_id':'group1/M00/00/00/\n \twKjzh0_xaR63RExnAAAaDqbNk5E1398.py','Uploaded size':'6.0KB','Local file name':'test'\n\t\t, 'Storage IP':'192.168.243.133'}\n\n## API Reference\n\nClass Fdfs_client:\n\nmember functions:\n\n* upload_by_filename(self, filename, meta_dict = None)\n '''\n Upload a file to Storage server.\n arguments:\n @filename: string, name of file that will be uploaded\n @meta_dict: dictionary e.g.:{\n 'ext_name' : 'jpg',\n 'file_size' : '10240B',\n 'width' : '160px',\n 'hight' : '80px'\n } meta_dict can be null\n @return dict {\n 'Group name' : group_name,\n 'Remote file_id' : remote_file_id,\n 'Status' : 'Upload successed.',\n 'Local file name' : local_file_name,\n 'Uploaded size' : upload_size,\n 'Storage IP' : storage_ip\n } if success else None\n\n* upload_by_buffer(self, filebuffer, file_ext_name = None, meta_dict = None)\n '''\n Upload a buffer to Storage server.\n arguments:\n @filebuffer: string, buffer\n @file_ext_name: string, file extend name\n @meta_dict: dictionary e.g.:{\n 'ext_name' : 'jpg',\n 'file_size' : '10240B',\n 'width' : '160px',\n 'hight' : '80px'\n }\n @return dict {\n 'Group name' : group_name,\n 'Remote file_id' : remote_file_id,\n 'Status' : 'Upload successed.',\n 'Local file name' : '',\n 'Uploaded size' : upload_size,\n 'Storage IP' : storage_ip\n }\n '''\n\n* upload_slave_by_filename(self, filename, remote_file_id, prefix_name, \\\n meta_dict = None)\n '''\n Upload slave file to Storage server.\n arguments:\n @filename: string, local file name\n @remote_file_id: string, remote file id\n @prefix_name: string\n @meta_dict: dictionary e.g.:{\n 'ext_name' : 'jpg',\n 'file_size' : '10240B',\n 'width' : '160px',\n 'hight' : '80px'\n }\n @return dictionary {\n 'Status' : 'Upload slave successed.',\n 'Local file name' : local_filename,\n 'Uploaded size' : upload_size,\n 'Remote file id' : remote_file_id,\n 'Storage IP' : storage_ip\n }\n '''\n\n* upload_slave_by_buffer(self, filebuffer, remote_file_id, \\\n meta_dict = None, file_ext_name = None)\n '''\n Upload slave file by buffer\n arguments:\n @filebuffer: string\n @remote_file_id: string\n @meta_dict: dictionary e.g.:{\n 'ext_name' : 'jpg',\n 'file_size' : '10240B',\n 'width' : '160px',\n 'hight' : '80px'\n }\n @return dictionary {\n 'Status' : 'Upload slave successed.',\n 'Local file name' : local_filename,\n 'Uploaded size' : upload_size,\n 'Remote file id' : remote_file_id,\n 'Storage IP' : storage_ip\n }\n '''\n\n* upload_appender_by_filename(self, local_filename, meta_dict = None)\n '''\n Upload an appender file by filename.\n arguments:\n @local_filename: string\n @meta_dict: dictionary e.g.:{\n 'ext_name' : 'jpg',\n 'file_size' : '10240B',\n 'width' : '160px',\n 'hight' : '80px'\n } Notice: it can be null\n @return dict {\n 'Group name' : group_name,\n 'Remote file_id' : remote_file_id,\n 'Status' : 'Upload successed.',\n 'Local file name' : '',\n 'Uploaded size' : upload_size,\n 'Storage IP' : storage_ip\n\t }\n '''\n\n* upload_appender_by_buffer(self, filebuffer, file_ext_name = None, meta_dict = None)\n '''\n Upload a buffer to Storage server.\n arguments:\n @filebuffer: string\n @file_ext_name: string, can be null\n @meta_dict: dictionary, can be null\n @return dict {\n 'Group name' : group_name,\n 'Remote file_id' : remote_file_id,\n 'Status' : 'Upload successed.',\n 'Local file name' : '',\n 'Uploaded size' : upload_size,\n 'Storage IP' : storage_ip\n }\n '''\n\n* delete_file(self, remote_file_id)\n '''\n Delete a file from Storage server.\n arguments:\n @remote_file_id: string, file_id of file that is on storage server\n @return tuple ('Delete file successed.', remote_file_id, storage_ip)\n '''\n\n* download_to_file(self, local_filename, remote_file_id, offset = 0, down_bytes = 0)\n '''\n Download a file from Storage server.\n arguments:\n @local_filename: string, local name of file \n @remote_file_id: string, file_id of file that is on storage server\n\t @offset: long\n\t @down_bytes: long\n @return dict {\n 'Remote file_id' : remote_file_id,\n 'Content' : local_filename,\n 'Download size' : downloaded_size,\n 'Storage IP' : storage_ip\n }\n '''\n\n* download_to_buffer(self, remote_file_id, offset = 0, down_bytes = 0)\n '''\n Download a file from Storage server and store in buffer.\n arguments:\n\t @remote_file_id: string, file_id of file that is on storage server\n \t @offset: long\n\t @down_bytes: long\n @return dict {\n 'Remote file_id' : remote_file_id,\n 'Content' : file_buffer,\n 'Download size' : downloaded_size,\n 'Storage IP' : storage_ip\n }\n '''\n\n* list_one_group(self, group_name)\n '''\n List one group information.\n arguments:\n @group_name: string, group name will be list\n @return Group_info, instance\n '''\n\n* list_all_groups(self)\n '''\n List all group information.\n @return dictionary {\n 'Groups count' : group_count,\n 'Groups' : list of groups\n }\n '''\n\n* list_servers(self, group_name, storage_ip = None)\n '''\n List all storage servers information in a group\n arguments:\n @group_name: string\n @return dictionary {\n 'Group name' : group_name,\n 'Servers' : server list,\n }\n '''\n\n* get_meta_data(self, remote_file_id)\n '''\n Get meta data of remote file.\n arguments:\n @remote_fileid: string, remote file id\n @return dictionary, meta data\n '''\n\n* set_meta_data(self, remote_file_id, \\\n meta_dict, op_flag = STORAGE_SET_METADATA_FLAG_OVERWRITE)\n '''\n Set meta data of remote file.\n arguments:\n @remote_file_id: string\n @meta_dict: dictionary\n @op_flag: char, 'O' for overwrite, 'M' for merge\n @return dictionary {\n 'Status' : status,\n 'Storage IP' : storage_ip\n }\n '''\n\n* append_by_filename(self, local_filename, remote_fileid)\n '''\n Append a file of Storage server\n arguments:\n @local_filename: string\n \t @remote_fileid: string\n @return dict {\n 'Group name' : group_name,\n 'Remote file_id' : remote_file_id,\n 'Status' : 'Upload successed.',\n 'Local file name' : '',\n 'Uploaded size' : upload_size,\n 'Storage IP' : storage_ip\n }\n '''\n\n* append_by_buffer(self, file_buffer, remote_fileid)\n '''\n Append a file of Storage server\n arguments:\n @file_buffer: string\n \t @remote_fileid: string\n @return dict {\n 'Group name' : group_name,\n 'Remote file_id' : remote_file_id,\n 'Status' : 'Upload successed.',\n 'Local file name' : '',\n 'Uploaded size' : upload_size,\n 'Storage IP' : storage_ip\n }\n '''\n\n* truncate_file(self, truncated_filesize, appender_fileid)\n '''\n Truncate file in Storage server.\n arguments:\n @truncated_filesize: long\n @appender_fileid: remote_fileid\n @return: dictionary {\n 'Status' : 'Truncate successed.',\n 'Storage IP' : storage_ip\n }\n '''\n\t \n* modify_by_filename(self, filename, appender_fileid, offset = 0)\n '''\n Modify a file in Storage server by filename.\n arguments:\n @filename: string, local file name\n @offset: long, file offset\n @appender_fileid: string, remote file id\n @return: dictionary {\n 'Status' : 'Modify successed.',\n 'Storage IP' : storage_ip\n }\n '''\n\n* modify_by_buffer(self, filebuffer, appender_fileid, offset = 0)\n '''\n Modify a file in Storage server by buffer.\n arguments:\n @filebuffer: string, file buffer\n @offset: long, file offset\n @appender_fileid: string, remote file id\n @return: dictionary {\n 'Status' : 'Modify successed.',\n 'Storage IP' : storage_ip\n }\n '''\n\n### Connection Pools\n\nBehind the scenes, fdfs_client-py uses a connection pool to manage connections to\nsets of tracker server and storage server.\n\n\n## Versioning scheme\n\nfdfs_client-py ver 1.2.7b support client protol of Fastdfs ver 4.06.\nPython must be ver 2.6 later.\n\nAuthor\n------\n\nfdfs_client-py is developed and maintained by scott yuan (scottzer8@gmail.com)\n\nfdfs_client-py is bug fixed and maintained by hay86\n\nIt can be found here: http://github.com/hay86/fdfs_client-py\n\nSpecial thanks to:\n\n* Andy Mccurdy, author of redis-py, referenced his code.\n* g.rodola, author sendfile module for python, g.rodola@gmail.com", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.google.com", "keywords": "Fastdfs,Distribute File System", "license": "GPLV3", "maintainer": "", "maintainer_email": "", "name": "py3Fdfs", "package_url": "https://pypi.org/project/py3Fdfs/", "platform": "", "project_url": "https://pypi.org/project/py3Fdfs/", "project_urls": { "Homepage": "http://www.google.com" }, "release_url": "https://pypi.org/project/py3Fdfs/2.2.0/", "requires_dist": null, "requires_python": "", "summary": "Python3 and Python2 client for Fastdfs", "version": "2.2.0" }, "last_serial": 4583471, "releases": { "2.1.0": [ { "comment_text": "", "digests": { "md5": "0c812424b685ec433ca0b2a67b0b0e58", "sha256": "9c39794a5c8ab7f59da9233d71db2a59af5cf7fa7f0fca29a72491606fed9068" }, "downloads": -1, "filename": "py3Fdfs-2.1.0.tar.gz", "has_sig": false, "md5_digest": "0c812424b685ec433ca0b2a67b0b0e58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37274, "upload_time": "2017-07-23T08:48:35", "url": "https://files.pythonhosted.org/packages/32/8a/14bbbf9ff07252e3a17416edf5e5327904f6b48602bb38064924b77a68f3/py3Fdfs-2.1.0.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "859bf5a2b6b0e1f8c92f532f52796e4b", "sha256": "c17ab3dc116cdaa5b30104ad0411654f3b0b99f1e978fbffe539a3c643ee7a7a" }, "downloads": -1, "filename": "py3Fdfs-2.2.0.tar.gz", "has_sig": false, "md5_digest": "859bf5a2b6b0e1f8c92f532f52796e4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36231, "upload_time": "2018-12-11T02:04:55", "url": "https://files.pythonhosted.org/packages/f3/bc/0977aaa6b1a6ed316d8498f16f86ca32e7139e43931f8328f6203c055dfe/py3Fdfs-2.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "859bf5a2b6b0e1f8c92f532f52796e4b", "sha256": "c17ab3dc116cdaa5b30104ad0411654f3b0b99f1e978fbffe539a3c643ee7a7a" }, "downloads": -1, "filename": "py3Fdfs-2.2.0.tar.gz", "has_sig": false, "md5_digest": "859bf5a2b6b0e1f8c92f532f52796e4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36231, "upload_time": "2018-12-11T02:04:55", "url": "https://files.pythonhosted.org/packages/f3/bc/0977aaa6b1a6ed316d8498f16f86ca32e7139e43931f8328f6203c055dfe/py3Fdfs-2.2.0.tar.gz" } ] }