Skip to main content

Python Implement for FastDFS Client

Project description

fastdfs-client-python

Python Versions LatestVersionInPypi Ruff Mypy coverage pre-commit.ci status GithubActionResult

FastDFS Python client

Manual pass upload test with fastdfs v6.12.1

English | 中文

Motivation

Base on:

Fixes:

  • TypeError:
Traceback (most recent call last):
  File "~/trying/something/upload.py", line 4, in <module>
    client = Fdfs_client(tracker_conf_path)
  File "~/trying/something/venv/lib/python3.10/site-packages/fdfs_client/client.py", line 52, in __init__
    self.tracker_pool = poolclass(**self.trackers)
TypeError: fdfs_client.connection.ConnectionPool() argument after ** must be a mapping, not str
  • ResponseError
fdfs_client.exceptions.ResponseError: [-] Error: Tracker response length is invaild, expect: 40, actual: 70

Requires

  • Python3.10+ (No other dependence)

For Python3.8/Python3.9, use https://github.com/waketzheng/fastdfs-client-python/tree/1.0.1

Install

pip install fastdfs-client

Usage

from fastdfs_client import FastdfsClient
client = FastdfsClient('/etc/fdfs/client.conf')
ret = client.upload_by_filename('test.txt')
print(ret)
  • Response sample
{
    "Group name": "group1",
    "Status": "Upload successed.",
    "Remote file_id": "group1/M00/00/00/wKjzh0_xaR63RExnAAAaDqbNk5E1398.txt",
    "Uploaded size": "6.0KB",
    "Local file name": "test.txt",
    "Storage IP": "192.168.243.133"
}

Advance

  • Upload as URL
from pathlib import Path

p = Path('test.txt')
client = FastdfsClient(["dfs.waketzheng.top"])
url = client.upload_as_url(p.read_bytes(), p.suffix)
print(url)
# https://dfs.waketzheng.top/group1/M00/00/00/wKjzh0_xaR63RExnAAAaDqbNk5E1398.txt
  • Download
save_to = 'local.txt'
client.download_to_file(save_to, 'group1/M00/00/00/wKjzh0_xaR63RExnAAAaDqbNk5E1398.txt')
  • Delete
id_or_url = 'https://dfs.waketzheng.top/group1/M00/00/00/wKjzh0_xaR63RExnAAAaDqbNk5E1398.txt'
# id_or_url = 'group1/M00/00/00/wKjzh0_xaR63RExnAAAaDqbNk5E1398.txt'
client.delete_file(id_or_url)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastdfs_client-1.1.7.tar.gz (34.0 kB view details)

Uploaded Source

Built Distribution

fastdfs_client-1.1.7-py3-none-any.whl (36.0 kB view details)

Uploaded Python 3

File details

Details for the file fastdfs_client-1.1.7.tar.gz.

File metadata

  • Download URL: fastdfs_client-1.1.7.tar.gz
  • Upload date:
  • Size: 34.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Darwin/20.6.0

File hashes

Hashes for fastdfs_client-1.1.7.tar.gz
Algorithm Hash digest
SHA256 2a942872f8cafb9d9b4cc31b2baf015231ff262817a5ec6931362c3f0766f88d
MD5 a47a652e38c2b52b9c71458f62289655
BLAKE2b-256 ac36dfe3cb6e079278e20dbc1e3feaaf12572a74f13345e927fa64fa501b297b

See more details on using hashes here.

File details

Details for the file fastdfs_client-1.1.7-py3-none-any.whl.

File metadata

  • Download URL: fastdfs_client-1.1.7-py3-none-any.whl
  • Upload date:
  • Size: 36.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Darwin/20.6.0

File hashes

Hashes for fastdfs_client-1.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 2e7d8dd49925a06c645ca13aba383fe37da35530091270285254a8c0c3b0a97b
MD5 28d1840586256a5b982bf378f6125f9a
BLAKE2b-256 6ea489a8e6225df5ec1e3d75d3bacd5da2bb59d4c204adf522c5eae4f8debda7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page