"errcode":45034,"errmsg":"media file count is out of limit hint 如何解决?

当遇到微信公众号图片上传失败,提示“mediafilecountisoutoflimit”时,表明图片数量已达到5000张上限。解决方法是登录公众号,进入素材管理删除多余图片至规定数量以下,再重新尝试上传。
图片素材上传,一直报错:
com.ai.ge.platform.exception.BusinessException: 上传微信异常:{"errcode":45034,"errmsg":"media file count is out of limit hint: [Dfb09762161]"}

媒体文件计数超出限制提示?

 

提示45034错误代码表示公众号中图片数量超限了

微信公众号素材管理中图片数量已超过官方限制

(官方限制最多5000张) 

首先登录到微信公众号,素材管理里面查看一下素材管理里面的图片数量;

如果超过了5000张,删除一部分,将图片数量减少到5000张以下,然后再尝试同步;

具体步骤如下:

 

一、登录微信公众平台  

 

二、点击公众号左侧导航栏的“素材管理”,点击“图片”,这是我们可以看到当前公众号中的图片数量。

 

如下图所示全部图片9138张,已经超过了5000张

2.png

 

三、选中图片,然后点击删除,直到删除到5000张以下,如果同步的文章中图片较多话,尽量多删除一些,以防同步是超过限制;

 

注意:这里删除的图片并不会影响到之前已经群发过的文章!

 

 

四、把图片删除到5000张以下的时候,然后再进行同步就可以了。

 

 

 

如下是上传的方法。

/**
 * 上传永久素材到微信
 *
 * 1、最近更新:永久图片素材新增后,将带有URL返回给开发者,开发者可以在腾讯系域名内使用(腾讯系域名外使用,图片将被屏蔽)。

 * 2、公众号的素材库保存总数量有上限:图文消息素材、图片素材上限为5000,其他类型为1000。

 * 3、素材的格式大小等要求与公众平台官网一致:

 *      图片(image): 2M,支持bmp/png/jpeg/jpg/gif格式

 *      语音(voice):2M,播放长度不超过60s,mp3/wma/wav/amr格式

 *      视频(video):10MB,支持MP4格式

 *      缩略图(thumb):64KB,支持JPG格式

 * 4、图文消息的具体内容中,微信后台将过滤外部的图片链接,图片url需通过"上传图文消息内的图片获取URL"接口上传图片获取。

 * 5、"上传图文消息内的图片获取URL"接口所上传的图片,不占用公众号的素材库中图片数量的5000个的限制,图片仅支持jpg/png格式,大小必须在1MB以下。

 * 6、图文消息支持正文中插入自己帐号和其他公众号已群发文章链接的能力。
 *
 */
/**
 * 上传永久素材
 * @param  path
 * @param  type  
 * @param  title type为video时需要,其他类型设null
 * @param  introduction type为video时需要,其他类型设null
 * @return {"media_id":MEDIA_ID,"url":URL}
 */
public static JSONObject uploadPermanentMaterial(String path, String type, String title, 
     String introduction,String urlStr) {

    JSONObject jsonObject = null;

    File file = new File(path);
    //判断文件是否
    if(!file.exists() || !file.isFile()){
        logger.error("上传的文件不存在或不是文件");
        return null;
    }

    try {


        // 创建SSLContext对象,并使用我们指定的信任管理器初始化
        TrustManager[] tm = { new MyX509TrustManager()};
        //SSLContext sslContext = SSLContext.getInstance("SSL","IBMJSSE2");
        SSLContext sslContext = SSLContext.getInstance("SSL");
        sslContext.init(null, tm, new java.security.SecureRandom());
        // 从上述SSLContext对象中得到SSLSocketFactory对象
        SSLSocketFactory ssf = sslContext.getSocketFactory();
        
        HostnameVerifier hv = new HostnameVerifier() {
            @Override
            public boolean verify(String urlHostName, SSLSession session) {
                logger.info("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost());
                return true;
            }
        };
        
        HttpsURLConnection.setDefaultHostnameVerifier(hv);
       
        URL uploadURL = new URL(null,urlStr,new sun.net.www.protocol.https.Handler());

        

        HttpURLConnection conn = (HttpURLConnection) uploadURL.openConnection();
        conn.setConnectTimeout(5000);
        conn.setReadTimeout(30000);
        conn.setDoOutput(true);
        conn.setDoInput(true);
        conn.setUseCaches(false);
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Connection", "Keep-Alive");
        conn.setRequestProperty("Cache-Control", "no-cache");
        String boundary = "-----------------------------" + System.currentTimeMillis();
        conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);

        OutputStream output = conn.getOutputStream();
        output.write(("--" + boundary + "\r\n").getBytes());
        output.write(String.format("Content-Disposition: form-data; name=\"media\"; filename=\"%s\"\r\n", file.getName()).getBytes());
        output.write("Content-Type: video/mp4 \r\n\r\n".getBytes());

        byte[] data = new byte[1024];
        int len = 0;
        FileInputStream input = new FileInputStream(file);
        while ((len = input.read(data)) > -1) {
            output.write(data, 0, len);
        }

        /*对类型为video的素材进行特殊处理*/
        if ("video".equals(type)) {
            output.write(("--" + boundary + "\r\n").getBytes());
            output.write("Content-Disposition: form-data; name=\"description\";\r\n\r\n".getBytes());
            output.write(String.format("{\"title\":\"%s\", \"introduction\":\"%s\"}", title, introduction).getBytes());
        }

        output.write(("\r\n--" + boundary + "--\r\n\r\n").getBytes());
        output.flush();
        output.close();
        input.close();

        InputStream resp = conn.getInputStream();

        StringBuffer sb = new StringBuffer();

        while ((len = resp.read(data)) > -1)
            sb.append(new String(data, 0, len, "utf-8"));
        resp.close();
        jsonObject = JSONObject.fromObject(sb.toString());
    } catch (Exception e) {
        e.printStackTrace();
        logger.error("上传媒体文件异常:"+ e);
    }

    return jsonObject;
}

 

 

 

### 回答1: 嵌套异常是 errcode:500,错误信息为 nacos 服务器未启动因为 d。 这个错误通常是由于某个系统或服务依赖的 Nacos 服务器没有启动导致的。Nacos 是一款用于实现动态服务发现、配置管理和服务管理的工具,如果它没有启动,那么相关的功能和服务将无法正常工作。 要解决这个问题,首先需要确保 Nacos 服务器已经正确安装和配置。可以检查服务器的运行状态和日志信息,查看是否有异常或错误提示。如果服务器没有启动,需要根据具体情况找出原因并进行相应修复。 常见的导致 Nacos 服务器无法启动的原因包括:端口冲突、配置错误、内存不足等。可以通过检查服务器配置文件和日志文件,查找可能的问题并进行修复。在修复后,重新启动 Nacos 服务器,确保它能够正常运行。 另外,还需要检查相关系统或服务的配置,确保它们正确地指定了 Nacos 服务器的地址和端口。如果地址或端口设置错误,系统将无法连接到 Nacos 服务器,也会导致相应的功能和服务无法正常工作。 总之,当遇到嵌套异常 errcode:500,错误信息为 nacos 服务器未启动因为 d 时,我们应该检查 Nacos 服务器的安装和配置,查找可能的问题并进行相应修复。同时,还需要检查相关系统或服务的配置,确保它们正确地连接到 Nacos 服务器。只有在 Nacos 服务器正常运行,并且相关系统和服务正确连接时,才能解决这个问题。 ### 回答2: 错误代码500表示服务器发生了内部错误,而错误信息"nacos server did not start because d"可能是因为nacos服务器启动失败。这个错误信息中的"d"可能是具体的错误原因,我们无法确定它代表什么。 根据这个错误信息,我们可以尝试以下的解决方案来解决这个问题: 1. 检查网络连接:确保你的服务器和nacos服务器之间的网络连接是正常的。可以尝试ping nacos服务器的IP地址,看是否能够通信。 2. 检查配置文件:检查nacos服务器的配置文件,确保配置文件中的参数设置是正确的。特别注意检查与"d"相关的参数,看是否有任何错误或者缺失。 3. 查看日志文件:查看nacos服务器的日志文件,查找有关启动失败的详细错误信息。根据错误信息,可能需要进一步检查问题所在并解决它。 4. 更新nacos版本:如果你正在使用一个旧版本的nacos服务器,可以尝试升级到最新版本,以确保你使用的是最新的稳定版本。 5. 寻求帮助:如果以上解决方案都没有解决问题,可以在nacos社区或者相关的技术论坛上提问,获得更多的帮助和支持。 总之,在解决这个问题时,需要仔细检查网络连接、配置文件和日志文件,同时尝试更新版本或者寻求他人的帮助。 ### 回答3: nested exception is errcode: 500, errmsg: nacos服务器未启动。 嵌套异常是错误代码为500,错误消息为nacos服务器未启动。这通常表示在尝试访问nacos服务器时出现了问题。 nacos是一个用于动态服务发现、配置管理和服务管理的开源平台。它允许开发人员注册、发现和配置微服务。当我们尝试与nacos服务器进行交互时,如果服务器未启动或遇到了问题,就会出现该错误。 要解决这个问题,我们需要确保nacos服务器已经正确地启动。可以检查服务器的日志文件以查看是否存在任何错误或异常。如果有错误日志,可以根据日志中提供的信息解决问题。可能的原因包括端口冲突、配置问题或网络连接问题。 如果服务器没有正确启动,我们需要检查安装和配置过程是否正确。我们可以重新安装nacos服务器并确保按照官方文档提供的步骤进行配置。确保所有必要的依赖项已安装并正确配置。还可以尝试重启服务器并查看是否解决了问题。 另外,我们还应该检查网络连接是否正常。如果服务器所在的主机或网络存在问题,可能会导致nacos服务器无法正常启动。确保服务器的网络连接正常,并且可以从当前位置访问服务器。 总之,当出现嵌套异常errcode为500,errmsg为nacos服务器未启动时,我们应该检查服务器的安装和配置过程,查看日志文件以获取更多信息,并确保网络连接正常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值