foyoux / aligo

🔥简单、易用、可扩展的阿里云盘 API 接口库🚀
GNU General Public License v3.0
867 stars 158 forks source link

上传图片到相册必须要先上传至云盘中的某个目录吗,可以直接上传到相册吗 #135

Closed yaoysyao closed 1 year ago

yaoysyao commented 1 year ago

新功能请求 上传图片到相册必须要先上传至云盘中的某个目录吗,可以直接上传到相册吗 ,要不然还要先上传到云盘里的某个文件夹在转移过去 。。。

yaoysyao commented 1 year ago

还有一个问题,我想调用的时候自己设置headers,这个可以设置吗,我看源码好像所有的接口的headers好像只有一个一个参数,我想根据自己的需要设置User-agent等怎么设置?

lemisky commented 1 year ago

新功能请求 上传图片到相册必须要先上传至云盘中的某个目录吗,可以直接上传到相册吗 ,要不然还要先上传到云盘里的某个文件夹在转移过去 。。。

目前好像是这样的

lemisky commented 1 year ago

还有一个问题,我想调用的时候自己设置headers,这个可以设置吗,我看源码好像所有的接口的headers好像只有一个一个参数,我想根据自己的需要设置User-agent等怎么设置?

你可以这样

from aligo import Aligo
from aligo.core import Config

if __name__ == '__main__':
    Config.UNI_HEADERS.update({
        'User-Agent': 'Mozilla/5.0 (Linux; Android 10; Redmi K30 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.210 Mobile Safari/537.36',
    })
    ali = Aligo()
yaoysyao commented 1 year ago

新功能请求 上传图片到相册必须要先上传至云盘中的某个目录吗,可以直接上传到相册吗 ,要不然还要先上传到云盘里的某个文件夹在转移过去 。。。

目前好像是这样的

我看源码现在是这样的,但是我看阿里云盘好像可以选择从本地上传还是从云端,这个可以做吗直接从本地上传到相册去

lemisky commented 1 year ago

对的,是可以做的

lemisky commented 1 year ago

但有点费劲

lemisky commented 1 year ago

没劲做😂

lemisky commented 1 year ago

Suggestion (2)

yaoysyao commented 1 year ago

没劲做😂

行吧,我看一下你的源码吧,感觉和上传文件应该差不多😂

yaoysyao commented 1 year ago

没劲做😂

兄弟,抱歉刚才搞错了,我抓取了一下API,发现只要指定drive_id为相册的drive_id就可以不上传到某个目录下而是直接上传到了相册,然后再移动到指定的相薄就可以了,

lemisky commented 1 year ago

老铁,要不要帮我写个 example 😁

yaoysyao commented 1 year ago

老铁,要不要帮我写个 example 😁

这个挺简单的,其实也不用写,就是上传图片之前先获取相册drive的id,然后设置drive_id为相册drive的id就可以,其他的不用变,不是你代码的问题,是我使用过程有问题,你源码中的例子上传图片默认传到了那个位置?是默认上传到了备份盘和资源库中的某个文件夹?还是上传到了相册,如果是相册那就没问题,你的例子是对的

lemisky commented 1 year ago

默认是备份盘

yaoysyao commented 1 year ago

默认是备份盘 哦哦,那其实上传的时候把driveID这个参数改成相册drive就可以了,我代码这样写的,首先获取相册drive_id参数 list_drive = aligo.list_my_drives() for i in range(len(list_drive)): if list_drive[i].drive_name is None: continue if list_drive[i].drive_type == 'normal' \ and list_drive[i].drive_name == drive_name \ and list_drive[i].status == 'enabled' \ and list_drive[i].category == category: return list_drive[i].drive_id, ''

然后上传文件并转移到指定的相薄 `
album_drive_id = get_user_drive_id(aligo=aligo, drive_name='alibum', category='')

先上传到默认的相册薄中,此时并未指定相册

        f = aligo.upload_file(f'{path + "/" + file_name}', parent_file_id='root', drive_id=album_drive_id[0])
        # 移动相片到指定的相薄
        result = aligo.add_files_to_album(files=[f], album_id=albums_id)

` 你可以测试下,你的代码没问题,是我使用的过程中没有搞明白才把照片上传到了默认的备份盘,然后我做签到任务的时候,发现总是不行,然后改了上面的方法

yleafcc commented 1 year ago
File "C:\Apps\Python\Lib\site-packages\aligo\core\Create.py", line 241, in upload_file
  if part_info.rapid_upload:
       ^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Null' object has no attribute 'rapid_upload'

上传到相册时,尝试指定parent_file_id=album_id 有如上错误,这个不能这么用么?必须先传到根目录再移动一下?

lemisky commented 1 year ago

应该传给 drive_id

lemisky commented 1 year ago

是不是移动一下我也不知道😂,这个功能我没有用过。

先了解官方的操作逻辑,和可实现的功能

yleafcc commented 1 year ago

应该传给 drive_id

只给drive_id是可以的,就是文件在相册根目录。 我是尝试传到指定相册,同时指定parent_file_id=album_id,drive_id=drive_id 时遇到了错误。

yleafcc commented 1 year ago

是不是移动一下我也不知道😂,这个功能我没有用过。

先了解官方的操作逻辑,和可实现的功能

Fiddler跟踪看 官方客户端是“POST /adrive/v1/biz/albums/file/create HTTP/1.1” 直接到了指定相册吧

lemisky commented 1 year ago

相册里面应该不存在文件夹了,所有没有 parent_file_id?

或者难道 只有一个 ablum_id ,然后每个相册就是 parent_file_id?

之前只实现了一些API,太久了,忘了

你可以先验证下,如果缺少接口实现,我可以再加

yleafcc commented 1 year ago

相册里面应该不存在文件夹了,所有没有 parent_file_id?

看了下网页版,相册的parent_file_id确实是root,只能先传根目录 然后add_file到相册

xinmans commented 10 months ago

相册根目录下的照片文件如何list? 我希望能移动一些文件到某个相册目录里

用album.album_id获取的根目录 list报错

ll = ali.list_album_files(album.album_id)
for i in ll:
    print(i)

15:23:38.972 aligo.WARNING 400 {"code":"NotFound.View","message":"The resource view cannot be found. View does not exist. view_id is xxx","resultCode":"NotFound.View"} {"code":"NotFound.View","message":"The resource view cannot be found. View does not exist. view_id is xxxx","resultCode":"NotFound.View"}

lemisky commented 8 months ago

@xinmans https://github.com/foyoux/aligo/issues/161