小文件没问题,文件大于2M时会出现这个错误,用内网endpoint和外网endpoint都一样
php版本7.1.27,开启了opcache
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您提到的问题似乎是关于在使用PHP上传大文件至阿里云OSS(对象存储服务)时遇到的错误。当处理大文件上传时,可能会遇到各种问题,包括但不限于内存限制、时间限制、以及配置不当等。以下是一些建议,希望能帮助您解决问题:
调整PHP配置:
memory_limit
的值,例如设置为memory_limit = 256M
或更高。post_max_size = 32M
。upload_max_filesize = 32M
。使用流式上传:对于大于2MB的文件,建议使用OSS SDK提供的分片上传功能。阿里云OSS SDK支持分片上传,这样可以避免一次性加载整个文件到内存中的问题。具体做法是使用OSSClient
的initiateMultipartUpload
方法开始一个分片上传任务,然后通过多次调用uploadPart
上传各个部分,最后使用completeMultipartUpload
完成上传。
检查网络状况:虽然您提到了内网和外网endpoint都遇到了问题,但还是建议确认网络连接是否稳定,特别是在使用内网访问时,是否有任何网络策略或防火墙规则可能影响大文件的传输。
更新SDK版本:确保您使用的阿里云OSS PHP SDK是最新的,因为旧版本的SDK可能存在已知问题或不支持最新的特性。可以通过Composer管理依赖来保持其最新。
错误日志:查看PHP的错误日志,这将提供更具体的错误信息,有助于定位问题所在。
禁用或调整opcache:虽然opcache对性能有显著提升,但在调试过程中,如果怀疑是opcache导致的问题,可以尝试临时禁用它,或者调整相关设置,比如opcache.memory_consumption
,确保它不会影响到大文件的处理。
请根据上述建议逐一排查并调整,希望这能帮助您解决大文件上传至阿里云OSS时遇到的问题。