You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ImgUr NPM包将上传的图片添加到指定相册?

问题分析

你当前的实现存在两个核心问题:

  1. 直接修改getAlbum返回的本地数据不会同步到ImgUr服务器,必须调用官方API完成相册更新
  2. getAlbum的参数要求是相册ID而非名称,用相册名称调用无法正确获取目标相册

正确实现方式

方案一:上传时直接指定相册(推荐,减少API请求)

先获取名为HelloWorld的相册ID,上传图片时直接关联该相册,完成后图片自动进入目标相册:

export async function uploadToImgUr(files: Buffer[]): Promise<string[]> {
    // 获取当前账号下名为HelloWorld的相册ID
    const albums = await client.getAccountAlbums();
    const targetAlbum = albums.data.find(album => album.title === 'HelloWorld');
    
    if (!targetAlbum) {
        throw new Error('名为HelloWorld的相册不存在,请先创建');
    }
    const albumId = targetAlbum.id;

    // 批量上传图片并指定目标相册
    const uploadPromises = files.map(async (file) => {
        const response = await client.upload({
            image: file,
            type: 'stream',
            album: albumId // 上传时绑定相册
        });

        return response.data.link;
    });

    return Promise.all(uploadPromises);
}

方案二:上传后批量添加到相册

若需先完成图片上传再统一添加到相册,可调用addAlbumImages方法批量操作:

export async function uploadToImgUr(files: Buffer[]): Promise<string[]> {
    // 获取目标相册ID
    const albums = await client.getAccountAlbums();
    const targetAlbum = albums.data.find(album => album.title === 'HelloWorld');
    
    if (!targetAlbum) {
        throw new Error('名为HelloWorld的相册不存在,请先创建');
    }
    const albumId = targetAlbum.id;

    // 上传图片并收集图片ID
    const uploadResults = await Promise.all(files.map(async (file) => {
        const response = await client.upload({
            image: file,
            type: 'stream'
        });
        return {
            link: response.data.link,
            id: response.data.id // 保存图片ID用于后续添加
        };
    }));

    // 批量将图片添加到相册
    const imageIds = uploadResults.map(result => result.id);
    await client.addAlbumImages(albumId, imageIds);

    return uploadResults.map(result => result.link);
}

注意事项

  • 确保ImgUr客户端已配置正确的授权信息,需拥有相册修改权限
  • 若HelloWorld相册未创建,可先调用client.createAlbum({ title: 'HelloWorld' })完成创建
  • 批量操作时优先选择方案一,可减少API请求次数提升效率

内容的提问来源于stack exchange,提问作者Franva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 16:27:25