python mediafire客户端库

mediafire的Python项目详细描述


MediaFire Python开放式软件开发工具包

这是MediaFire Core API客户机的python实现。

https://travis-ci.org/roman-yepishev/mediafire-python-open-sdk.svg?branch=master

安装

$ pip install mediafire

我该用什么?

如果您很匆忙,请使用MediaFireClient-它包含足够的函数来 让你的上传/下载和文件列表正常工作。它没有稳定的api, 只有初步的测试覆盖率。

您可能需要坚持使用MediaFireApiMediaFireUploader来获得尽可能多的 尽可能控制应用程序流。

mediafire.mediafireapi

API客户端库提供了一个到MediaFireAPI的接口。它处理 请求、响应、签名和错误。

用法:

frommediafireimportMediaFireApiapi=MediaFireApi()session=api.user_get_session_token(email='your.email@example.net',password='password',app_id='42511')# API client does not know about the token# until explicitly told about it:api.session=sessionresponse=api.user_get_info()print(response['user_info']['display_name'])# Or directly for methods that are not yet wrappedresponse=api.request("upload/add_web_upload",{"url":"http://forum.mediafiredev.com/images/mfforumlogo.png","filename":"mfforumlogo.png"})response=api.request("upload/get_web_uploads",{"key":response['upload_key']})

API客户端库支持不带会话令牌的操作。在这种情况下 需要会话令牌的操作将失败,并出现拒绝访问错误:

frommediafireimportMediaFireApiapi=MediaFireApi()response=api.system_get_info()print(response)# prints system inforesponse=api.user_get_info()# fails with "Session token is missing"

一旦设置,就可以取消设置会话令牌:

api.session=None# ordelapi.session

有关包装方法的信息,请参见pydoc mediafire.api。为了 有关所需实际值的文档,请参见MediaFire Core API 文档。

所有包装的方法都遵循相同的命名约定category_action,因此 上传/即时是upload_instant

您可以轻松构建自己的呼叫:

response=api.request("user/set_avatar",{"quick_key":"123456789012345"})

下载

api客户端不处理常规文件下载,因为这些是简单的http请求 “文件/获取链接”返回的URL。以下是您自己的方法:

response=api.file_get_links('c94lcpx3vax6xp3')normal_download_url=response['links'][0]['normal_download']response=requests.get(normal_download_url,stream=True)withio.open("/tmp/green.jpg",'wb')asfd:forchunkinresponse.iter_content(chunk_size=4096):fd.write(chunk)

如果响应是文件下载,例如file/zip,则返回响应 是一个requests.Response对象,您可以从中读取:

...response=api.request("file/zip",{"keys":"c94lcpx3vax6xp3"})withio.open("/tmp/green.zip",'wb')asfd:forchunkinresponse.iter_content(chunk_size=4096):fd.write(chunk)...

有关详细信息,请参阅Download文档。

mediafire.mediafireuploader

MediaFire支持多种上传方法,并且 单一的上传方法可以让事情变得更简单:

frommediafireimport(MediaFireApi,MediaFireUploader)api=MediaFireApi()uploader=MediaFireUploader(api)# ... authenticate ...fd=open('/path/to/file','rb')result=uploader.upload(fd,'Some filename.txt',folder_key='1234567890123')pprint(api.file_get_info(result.quickkey))

result是一个mediafire.uploader.UploadResult实例。

文件删除

仅用于filedrop上载(即使用filedrop_键时)upload/instant 结果有快捷键。upload/instantupload/resumable返回 None用于所有字段,因为upload/poll不支持 加密上传密钥。

mediafire.media.conversionserverclient

此API可能会更改

这是在图像和文档转换api之上的一个非常薄的层。

frommediafire.mediaimportConversionServerClientconv=ConversionServerClient()response=conv.request('2004','m8d6blce79xhxl5','i',size_id='1')withopen('/tmp/example.jpg','rb')asfd:fd.write(response.content)

mediafire.client.mediafireclient

此API可能会更改

高级客户端库包装api调用并提供简化的接口。

支持的操作:

  • 文件上载
  • 文件下载(直接下载链接)
  • 列出目录
  • 创建目录
  • 删除文件和目录
  • 获取有关文件和目录的信息

mediafire资源可以由path或quickkey/folderkey引用。

  • 路径mf:/Pictures/Sample.jpg/Pictures/Sample.jpg
  • 文件夹密钥mf:6302u1a9p0a9xfolder_key长13个字符)
  • 快捷键mf:46d3y4p8542kiypquick_key长15个字符)
frommediafire.clientimport(MediaFireClient,File,Folder)client=MediaFireClient()client.login(email='your.email@example.net',password='password',app_id='42511')client.upload_file("flower.jpg","mf:/Pictures/")client.download_file("mf:/Pictures/flower.jpg","flower-from-mediafire.jpg")foriteminclient.get_folder_contents_iter("mf:/Pictures"):iftype(item)isFile:print("File: {}".format(item['filename']))eliftype(item)isFolder:print("Folder: {}".format(item['name']))

有关高级客户端的用法,请参见examples/mediafire-cli.py

要求

  • python 2.7或3.4
  • 请求
  • 请求工具带
  • 响应(用于测试)

测试

测试套件位于tests/

git clone https://github.com/MediaFire/mediafire-python-open-sdk.git
cd mediafire-python-open-sdk
# Run tests with python 3 interpreter
PYTHONPATH=. python3 -munittest
# Run tests with python 2 interpreter
PYTHONPATH=. python -munittest discover

报告问题

请使用MediaFire/mediafire-python-open-sdk项目问题跟踪程序 报告实施中的问题。

关于和许可

版权所有(c)2014,Roman Yepishev。保留所有权利。网址:http://www.keypressure.com

2014年10月24日,经Roman Yepishev明确许可,本项目由MediaFire提供。

这个项目是在bsd许可下进行的。有关详细信息,请参见许可证文件。

MediaFire®是MediaFire,LLC的注册商标。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在AlertDialog builder标题右侧放置图标   安装weblogic server12时发生java获取错误。1在windows 10上   java无法导入:安卓。支持v7。小装置。Android Studio中的RecyclerView   java Android应用程序等待通知奇怪行为   java如何比较ArrayList中的整数元素?   java Quartz属性不会触发Quartz作业   java轻松地将许多JavaFX属性绑定到UINode   Maven插件管理器导致java错误消息的原因是什么?   JAXB解组错误后java文件被阻止   java如何在spark kafka流中创建消费者组并将消费者分配给消费者组   java Gps lat&long随机显示非常不准确的结果   java使用assest文件夹文件在Android上执行shell命令   java如何在客户端使用javascript提取文本   java扩展描述的distincts之和   java重写默认Spring数据REST配置   java SQL未命名参数语法   二进制搜索任务的java真实解决方案   java在一个多模块多数据源项目中,用什么正确的方式来指示将哪个数据源注入我的DAOs?