• [问题求助] 【ABC产品】上传到OBS的资源,没法匿名访问
    你好,上传到OBS的图片,现在没法匿名访问。我们目前h5是原生开发的,写死了一个oauth的用户来获取token,然后用返回的token来请求ABC的接口,目前发现上传到OBS的资源,没法访问,会报401,请问这个要怎么处理?我们创建的这个oauth基于的用户是有OBS权限的
  • [问题求助] 【ABC】【购买的obs区域在abc连接器里没有】
    【功能模块】购买的是obs资源包所属区域是华东-上海一,在abc创建obs连接器的时候发现区域列表没有华东-上海一,请问这个要怎么处理?【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [互动交流] C# OBS net45 SDK 上传文件或者下载文件 报错 基础连接已经关闭: 发送时发生错误,请指教
    基础连接已经关闭: 发送时发生错误。
  • [互动交流] obs上传之后返回的路径无法打开
    上传之后显示成功了,但是复制连接到浏览器是打不开的
  • [互动交流] obs绑定自定义域名出现异常
    对于桶域名的映射,是参照文档做的,添加映射之后,自定义的域名访问文件出错,用原有桶域名访问就是正常的。求助各位大佬解答一下
  • [互动交流] OBS C SDK创建空文件AccessDenied
    参考文档和demo源码实现了自己的obs文件创建、删除、上传、下载等函数,但是发现创建空文件经常会报AccessDenied错误,有时重试一次就可以成功,有时要延时三五秒以后重试才能成功。这个现象仅在创建空文件的时候才有,上传一个长度不为0的文件是正常的,两者都是调用SDK API中的put_object方法。有专家大神可以指导一下吗?
  • [技术干货] obs 对象上传后的文件没有扩展名,有人遇到了吗?
    public static string UploadFile(Stream fileStream, string contentType) { ObsClient client = new ObsClient(accessKeyId, secretAccessKey, endpoint); try { PutObjectRequest request = new PutObjectRequest() { BucketName = bucketName, ObjectKey = DateTime.Now.ToString("yyyyMMddHHmmss"), InputStream = fileStream, ContentType = contentType }; PutObjectResponse response = client.PutObject(request); return response.ObjectUrl; } catch (ObsException ex) { Util.LogUtil.Add(ex, "UploadFile exception"); return string.Empty; } }
  • [互动交流] 请问使用esdk-obs-java如何成对象的下载链接
    我看资料上用的是obsutil sign .但需要使用java批量生成分享链接,有没有什么方法
  • [产品讨论] 上传到obs的视频怎么通过浏览器直接访问,不需要加密限制
    比如我上传后的视频地址是:https://xxx.obs.cn-south-1.myhuaweicloud.com/video-test.mp4,我已经选择公共可读,浏览器打开变成这样<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>0000017B9B93A655930E8068F63B7BFE</RequestId><HostId>VwOsTEjcrKUcAqs439U/IAO1ZJ/I2RRFws4ZRvhKCK7trrDfIYivbe3K7aso/f+t</HostId></Error>要实现这个功能怎么办?只想通过浏览器直接访问
  • [已解决问题归档] 【AICC产品】【OBS外呼功能】AICC OBS外呼和IPCC OBS外呼差异解决方案
    【问题来源】【必填】    【武汉农商行】    【问题简要】【必填】     关于AICC OBS外呼与 IPCC OBS适配性改造方案【问题类别】【必填】    【aicc cc-cms】【AICC解决方案版本】【必填】    【AICC可选择版本:AICC 8.14.0 CC-CMS】【期望解决时间】【选填】      尽快【问题现象描述】【必填】         //描述做了什么,期望发生什么,实际发生了什么,发生问题坐席等。如果已经尝试了一些措施但是没有解决问题,也请描述出来。         //请描述环境信息,如:华东,华北等。        经过对比发现:AICC OBS外呼提供的表名及字段存在较大差异,请详细对比并给出改造方案
  • [互动交流] OBS使用sdk对接为什么所有操作都是404啊,求助!!!!!!!!
    OBS使用sdk对接为什么所有操作都是404啊,求助!!!!!!!!OBS使用sdk对接为什么所有操作都是404啊,求助!!!!!!!!OBS使用sdk对接为什么所有操作都是404啊,求助!!!!!!!!
  • obs的临时上传token,长达4.7K,能缩短吗?50-100字节以内?
    为什么要搞这么长的token啊?一般的设备都扛不住啊,能弄短点吗?https://bucket-guxiaobei.obs.cn-north-4.myhuaweicloud.com:443/a.jpg?AccessKeyId=00DTG9W7DTXBL4AC8xEY&Expires=1629270622&x-obs-security-token=gQpjbi1ub3J0aC00ijQ626jEHYLgewynxylZHx7koWWEmCX-kiJIjiZEMjeGHUSsDW6iuNNpyxgISAbVn6f2MlPqH1fSfr-gJ4OFOhfnv67OvL6aC_RGK5wIpPhm58uNxy6Z6TchVyePDek3CI7YvNEd3tV08TQDeOA3UvwO02fy2DkqS2AwJOgf0lyKe69SvzICPYpoWUty49gH_GHVw_rpKacy8XuLCj9H49QSgcA-X6mDX6Qnmhl5YOBrWl_7AWbwpGuT2Sid8ON01kdsgThPx3zW7qIvooK6lkCcvq0u74XZTFN015xfPo42JdDl0gMI_qZFGkIq4O_p3fNcAZV8_TfRr5msYiE6bMYo6cE5ZYpRNrOjvR2Uu8jTem-xa5nDf6_LEwbaOWsA057B_9Ih74fVJQGSs1ldGQA1HY6yeEt5xc5YSo9DeYD8R5QHfNgpwL2qM5XUxvWT89MwZNxAZCqEspfPQYh-lYTf5oIHdutE9_Fik7MfDc8Njn1ckjOtcCuVvcxbRa14sBiY1aeGxVqJeNg19LZRGBGmL4N-RdBDep55aBbCDKCO1fzjTrDpEFMrxz57lLXuVOfOo3wzDoFLDq9FkrTy5VOg3x8QC13BjLftTI0hllY0qii5Dj11WWv_6qZo_FU5hLBBOHwZn1lmFO8P93l-R90Jxu4bKQrPxliGi77Bmlo7GCnZ5Q2GCcmnjTC_tliaxKQjXDC58gYsA-tngnlgEqqzw5TN75SelnG0Aj7XhBxWAKsBd-C5eJ6Z1v-G6TmjudP46xUhG7jiBAEmTFnXtdZa4LUj3QZp3JqT25reAPpS121l_jb8q9V4OuEstAqyfoGUqYHyAvU-BewlpvGCGS4RJHVZ6VYQkZUHeFMY-t2q5adgxx17_WCXial8w6_FxoBPFFsZZMSap0n7qK-XSl2RN1g8lJtQBh6G1sujXgXuMNTVrhNx_Sz2oA98d_JgAn5qkmRP75aSnf0KfSXU1Wj9w-Ry4C2ylVIFvqNtPwvGktfWN2b0_OpttO4MRlrPC53oDwo8PAX38qRDsxmZ0wJRBSxras94rKPmoWStmmaSaOcQeaWL8f2H8xs5XDqW_na1PjZGtoIvrUuC4ZoghkfyqFzD5sOpjKP7pxcLR-x1Op2kKo3iOAkGGuaSu4c5l1OSFCkZZL44Z4LZS-urUhp6uu9NpdLk8Aq13vzV4Cmir2GCI721lGQjrxxu4vUD224a6MIQ3OVqreBnrEzwmqqf52p7_rkC54yds84Vaua4BGu619DCiRV2QA-hdlB3WtUoaGOHPc-J2tmF-SsaByqE-rKMkbXUoikaHOZXyy0MVVwmE5ncrjvIKa1aQwHdaJn2KnDk_jEibfe9gdqtFT028X32mYwVf-Wu19KR4brQj__lPhPV8wUSx2kNlqslWx4cz8LTj99qnxnQH-PrWBeBIqQjQtou8K4AcZH3iqN3KtliUrRreuqXioyjqZGU_GccT1n6y4sTscf8xXe38l8w-BCrfgTp7MD1i4lkN-2vv4TryOFvkWDtYxy07EW401OTd9IjgCVJSMgL356iEs-_7xMpNolyr3TZrKU854kxT-pmPMCbzwTtGXfT4rCBkhr9KmdlmXWd366VDLAaZxQL_IgOnCecEsPjdo0Dhasn1EntaAhu92B8rhICUEL8Wr2L2wbDZJwM4baFNiXuV4uA4WPaPKe5-raQnYEFPCFtVkzfOjacIqPAMswcBdnFhxITi08VQuawEXB-DkHHxfpmY2wz9g59NSYJM76sj1QmzgK4SCXfNbBkT07M-btYszaIbY31GF0hJrh_mvuNIKehPNoj1nqk119gcrdT5OADd-72gi9gjbkd0_Gd4E-voNew5riwmfPRX4uBZM5Gg-MAOlBAP-ZXD59ZB0VUrG8kxfrtX27r6OvAXA5XDMrLd8AyRdp-yGa7STI9HX4V45guws12hDCImlBy33SlpbzEjAYqLpe9-PGK9YapFQZ1_Odq8OFvyEijrZFQlLKwaagtKDXlA44VpuLcpZ--EJ1c1B62K9aplLVbZ3Xml3ehDM3yYdAj2s4Z2GCzFv2o_gQAOXMfDfCaF4DlgkU-0dBNlwgWDbgTYDQzwKsnuxZYUyrYdd7cVw33W41HMDV4DFqskTw6v2TL1mZWpvA3ZkK6zirW7F9Pkbg13vH1dhEK624bPNX9YZCc61QSR3e4RlaSP_nadtAqhh1xHrWLOIBA0P6YlrGPVzYQJk5iG00mPGQt9hrfrC7ncgZpcbTHoYSCiwvnkc_zBCN0v0LO-yc-pE9pUP-KdaPTB4ds1B__kNQsaaIGTKMv0uca6QS-3wsRTdYZZt4GtOE85p-PvmqsOFMOd3b4tiJG_yOk3fKIQc8FPX770vo8O8qbCEWnnyZ-iskGKM0Uw26JY_k4ofCZxQiAO_hHe3x7rM-NyR-IBLNMQxbe7WY_rA6_8T1MPDMObQJymkBMqxaHXX2myztu47ndIJk2DsUH_HxQd3i3I_FxmfRrw4necQWDp3Y62kVl14g1E7ISL4mddeDcjrSJ9xFuZ4RHujnXSyigQGAkQyeKNTuPDdJmUme-EUwMCzQPk6r8oWyAHA6kSCGYxWC_9ZZe67595txQakYf74QBrsHD8N_EuD2v_8y5BoYnZBNb0UyxoB3UK-O9RuyDUqJwf26ZR4BOSIgzk-fxGdjcl7IkWTjfe7rj4telp7KeDmZtTZiN7COzyG_2x-ad8I5G0XSs235xAIoYBE5i9oNBS6qI8PlSHq7RkwMatGptIiQGkeU4qVSZKVmgidDzVInsYDVzkNZ6dbyM8nmwN6x37R4niLEYGkQuCh_rVlnMsGiTqI0XPDGVgwFXzHBZdYFe9thpklDcbKV6hcBhL4_WvWldExLT9p4XT468MOn_ETeqnXeE4Y3nCQhSZDHdJT93s64N7MzvhnnDBNOjDWCvLfHPDuhvgKTbBrS7b1GTWsN-NqMAY7EJhhJD2m4HvhLjIum6uCz06cPLokv00lJLEJc-1Xh5aC6VRVpBADu3iIyfhWK4A6i52ATRdh3oMi79DFymHUu5v8VSUU5eOaFLIC8UoqhvgCJwmcE_ECmOut5dkrP_dV6nK7UjgIrgllQYUCC3qc9oHChfGeGlsHMgu9CeuefN5h1iI2Xx7GsnKmF35QgCkJX11-rJDIBlJw9a69fCcl8vTmWFTJCcB85ehKNYsFEv4GdPz10Uq3AnbNP7UcbQXKUubNQrs9L2JrXbt6ZYMulO6REzFv0jY8-kBtCWzXE0v6rNeIensSczEu-HH2LqFyYKdJ3CydIte5mxNVngz3J9PcyWin60XVACXtlBmNr3LwywgJ9b92plsGMiH9UfWm0eR5Y4uccvyrte_gXmWDQFIzQHqNSHB1DcFS1KwGRglcaKEpV6StAxsj_DhvGCTveTsYFr8p1IwfRyLzq9Nq_tV-OGLw7TVtWYRGnTCNK2RJrXx1PrHS1A-YeN5M5z_hfCoA0rJ2yYJRmGrYEwWmXHZ_yvUbnWTZQfiXxIT5Ugiys2tZuLFfxbmF3J3vCT4vSotiXHJ9rpFYRbR8lYXIYJxLLRGOHniAbyyfGsZ8FT4O3IhHLzAyl8OziF-qnb19hkqQfCAflfc5kDiEqYPmtY34G_zNlrz3vJ0bunXDb-Ez8KCA2WG2R1W9GkJSVkEyK5R69ayrGEdGOqhoYVDXK3XiAdg53_3sA2FMzEidlbYs1t5TWqRRx3FSu9O7FD0Z-GPeOMbD-eEs93gFnAkifx8_X4IcuvDwqCrZFc6QpoFkbwI7joM_JN_huwxgjNHYg4wISnyMhKbn-qQqob4DNN2j85gNEHO4TF2NA2vCs74skeAel7x0zontklW3Rj0Ixn8fVnWr1LfvZNGkfdMFODxtsIwH7A9BzLhoSNRNL0glXc7sDyqYIT1Om39UVlK7ayGpLwHgGhuND4ZUzxFMdhwQ181OcrC9UQoAGAV8Oyz_uS250iuR4PTe9BIkvgzUBkMyoxjaRV3wZOTM5lpENeOJ7ieX2tikhzAo4EDvTh1HupKoFiNSEhZzav7aH4Ks811weuh2uWNEQK-9ZvuSCi8ArDAKZL5oF7grh6zIHetnHrm5rOhDXAWTYPr31j16ur7HNNI2ak2zTAlYhVCZ2gAb9OaEh-T3R3ZHzbrlTRYMLH24oINx6HEUZWEpLtXLeJt4-GmbTbHUdJ8ITWe-e0VkQuJC1EhlZ_JG5A5vAFmmaBnKCdBbdZUiDIlQOQ1vMIusYh3H9W_SWjjeWm27aDrynv1ZA3j09bXkl2l3gqdKpDJKxuHUsNdTJ-1WQvXS5eljMbdfBBKKstgt_1B1Lmqk1rVVD8xMwMTvP6z51teqmE17ABp_PCaVNA6XJzFibr-nahmgEuWddSlYKyqZZwSRh2L9_YxTKjU7_AYQ-Lx9cWx3Odzg6BCos8CtmNJZg3fal-ByMxTMv-uzKRjeV1E1wpBrS8b2fUPeH_yMs4vh346nE9A4rgmuf0tKakYXKw9p1oFP0xx3z00dodAmVBKlzFtr_r6zZ_k3_-aPhAnAWqrS7spvGoLF8%3D&Signature=X3TYar2NRhY15tvOlAIkQmsGWEk%3D
  • postman怎么设置,才能往obs桶里,上传一个jpg图片?
    https://bucket-guxiaobei.obs.cn-north-4.myhuaweicloud.com:443/a.jpg?AccessKeyId=00DTG9W7DTXBL4AC8xEY&Expires=1629270622&x-obs-security-token=gQpjbi1ub3J0aC00ijQ626jEHYLgewynxylZHx7koWWEmCX-kiJIjiZEMjeGHUSsDW6iuNNpyxgISAbVn6f2MlPqH1fSfr-gJ4OFOhfnv67OvL6aC_RGK5wIpPhm58uNxy6Z6TchVyePDek3CI7YvNEd3tV08TQDeOA3UvwO02fy2DkqS2AwJOgf0lyKe69SvzICPYpoWUty49gH_GHVw_rpKacy8XuLCj9H49QSgcA-X6mDX6Qnmhl5YOBrWl_7AWbwpGuT2Sid8ON01kdsgThPx3zW7qIvooK6lkCcvq0u74XZTFN015xfPo42JdDl0gMI_qZFGkIq4O_p3fNcAZV8_TfRr5msYiE6bMYo6cE5ZYpRNrOjvR2Uu8jTem-xa5nDf6_LEwbaOWsA057B_9Ih74fVJQGSs1ldGQA1HY6yeEt5xc5YSo9DeYD8R5QHfNgpwL2qM5XUxvWT89MwZNxAZCqEspfPQYh-lYTf5oIHdutE9_Fik7MfDc8Njn1ckjOtcCuVvcxbRa14sBiY1aeGxVqJeNg19LZRGBGmL4N-RdBDep55aBbCDKCO1fzjTrDpEFMrxz57lLXuVOfOo3wzDoFLDq9FkrTy5VOg3x8QC13BjLftTI0hllY0qii5Dj11WWv_6qZo_FU5hLBBOHwZn1lmFO8P93l-R90Jxu4bKQrPxliGi77Bmlo7GCnZ5Q2GCcmnjTC_tliaxKQjXDC58gYsA-tngnlgEqqzw5TN75SelnG0Aj7XhBxWAKsBd-C5eJ6Z1v-G6TmjudP46xUhG7jiBAEmTFnXtdZa4LUj3QZp3JqT25reAPpS121l_jb8q9V4OuEstAqyfoGUqYHyAvU-BewlpvGCGS4RJHVZ6VYQkZUHeFMY-t2q5adgxx17_WCXial8w6_FxoBPFFsZZMSap0n7qK-XSl2RN1g8lJtQBh6G1sujXgXuMNTVrhNx_Sz2oA98d_JgAn5qkmRP75aSnf0KfSXU1Wj9w-Ry4C2ylVIFvqNtPwvGktfWN2b0_OpttO4MRlrPC53oDwo8PAX38qRDsxmZ0wJRBSxras94rKPmoWStmmaSaOcQeaWL8f2H8xs5XDqW_na1PjZGtoIvrUuC4ZoghkfyqFzD5sOpjKP7pxcLR-x1Op2kKo3iOAkGGuaSu4c5l1OSFCkZZL44Z4LZS-urUhp6uu9NpdLk8Aq13vzV4Cmir2GCI721lGQjrxxu4vUD224a6MIQ3OVqreBnrEzwmqqf52p7_rkC54yds84Vaua4BGu619DCiRV2QA-hdlB3WtUoaGOHPc-J2tmF-SsaByqE-rKMkbXUoikaHOZXyy0MVVwmE5ncrjvIKa1aQwHdaJn2KnDk_jEibfe9gdqtFT028X32mYwVf-Wu19KR4brQj__lPhPV8wUSx2kNlqslWx4cz8LTj99qnxnQH-PrWBeBIqQjQtou8K4AcZH3iqN3KtliUrRreuqXioyjqZGU_GccT1n6y4sTscf8xXe38l8w-BCrfgTp7MD1i4lkN-2vv4TryOFvkWDtYxy07EW401OTd9IjgCVJSMgL356iEs-_7xMpNolyr3TZrKU854kxT-pmPMCbzwTtGXfT4rCBkhr9KmdlmXWd366VDLAaZxQL_IgOnCecEsPjdo0Dhasn1EntaAhu92B8rhICUEL8Wr2L2wbDZJwM4baFNiXuV4uA4WPaPKe5-raQnYEFPCFtVkzfOjacIqPAMswcBdnFhxITi08VQuawEXB-DkHHxfpmY2wz9g59NSYJM76sj1QmzgK4SCXfNbBkT07M-btYszaIbY31GF0hJrh_mvuNIKehPNoj1nqk119gcrdT5OADd-72gi9gjbkd0_Gd4E-voNew5riwmfPRX4uBZM5Gg-MAOlBAP-ZXD59ZB0VUrG8kxfrtX27r6OvAXA5XDMrLd8AyRdp-yGa7STI9HX4V45guws12hDCImlBy33SlpbzEjAYqLpe9-PGK9YapFQZ1_Odq8OFvyEijrZFQlLKwaagtKDXlA44VpuLcpZ--EJ1c1B62K9aplLVbZ3Xml3ehDM3yYdAj2s4Z2GCzFv2o_gQAOXMfDfCaF4DlgkU-0dBNlwgWDbgTYDQzwKsnuxZYUyrYdd7cVw33W41HMDV4DFqskTw6v2TL1mZWpvA3ZkK6zirW7F9Pkbg13vH1dhEK624bPNX9YZCc61QSR3e4RlaSP_nadtAqhh1xHrWLOIBA0P6YlrGPVzYQJk5iG00mPGQt9hrfrC7ncgZpcbTHoYSCiwvnkc_zBCN0v0LO-yc-pE9pUP-KdaPTB4ds1B__kNQsaaIGTKMv0uca6QS-3wsRTdYZZt4GtOE85p-PvmqsOFMOd3b4tiJG_yOk3fKIQc8FPX770vo8O8qbCEWnnyZ-iskGKM0Uw26JY_k4ofCZxQiAO_hHe3x7rM-NyR-IBLNMQxbe7WY_rA6_8T1MPDMObQJymkBMqxaHXX2myztu47ndIJk2DsUH_HxQd3i3I_FxmfRrw4necQWDp3Y62kVl14g1E7ISL4mddeDcjrSJ9xFuZ4RHujnXSyigQGAkQyeKNTuPDdJmUme-EUwMCzQPk6r8oWyAHA6kSCGYxWC_9ZZe67595txQakYf74QBrsHD8N_EuD2v_8y5BoYnZBNb0UyxoB3UK-O9RuyDUqJwf26ZR4BOSIgzk-fxGdjcl7IkWTjfe7rj4telp7KeDmZtTZiN7COzyG_2x-ad8I5G0XSs235xAIoYBE5i9oNBS6qI8PlSHq7RkwMatGptIiQGkeU4qVSZKVmgidDzVInsYDVzkNZ6dbyM8nmwN6x37R4niLEYGkQuCh_rVlnMsGiTqI0XPDGVgwFXzHBZdYFe9thpklDcbKV6hcBhL4_WvWldExLT9p4XT468MOn_ETeqnXeE4Y3nCQhSZDHdJT93s64N7MzvhnnDBNOjDWCvLfHPDuhvgKTbBrS7b1GTWsN-NqMAY7EJhhJD2m4HvhLjIum6uCz06cPLokv00lJLEJc-1Xh5aC6VRVpBADu3iIyfhWK4A6i52ATRdh3oMi79DFymHUu5v8VSUU5eOaFLIC8UoqhvgCJwmcE_ECmOut5dkrP_dV6nK7UjgIrgllQYUCC3qc9oHChfGeGlsHMgu9CeuefN5h1iI2Xx7GsnKmF35QgCkJX11-rJDIBlJw9a69fCcl8vTmWFTJCcB85ehKNYsFEv4GdPz10Uq3AnbNP7UcbQXKUubNQrs9L2JrXbt6ZYMulO6REzFv0jY8-kBtCWzXE0v6rNeIensSczEu-HH2LqFyYKdJ3CydIte5mxNVngz3J9PcyWin60XVACXtlBmNr3LwywgJ9b92plsGMiH9UfWm0eR5Y4uccvyrte_gXmWDQFIzQHqNSHB1DcFS1KwGRglcaKEpV6StAxsj_DhvGCTveTsYFr8p1IwfRyLzq9Nq_tV-OGLw7TVtWYRGnTCNK2RJrXx1PrHS1A-YeN5M5z_hfCoA0rJ2yYJRmGrYEwWmXHZ_yvUbnWTZQfiXxIT5Ugiys2tZuLFfxbmF3J3vCT4vSotiXHJ9rpFYRbR8lYXIYJxLLRGOHniAbyyfGsZ8FT4O3IhHLzAyl8OziF-qnb19hkqQfCAflfc5kDiEqYPmtY34G_zNlrz3vJ0bunXDb-Ez8KCA2WG2R1W9GkJSVkEyK5R69ayrGEdGOqhoYVDXK3XiAdg53_3sA2FMzEidlbYs1t5TWqRRx3FSu9O7FD0Z-GPeOMbD-eEs93gFnAkifx8_X4IcuvDwqCrZFc6QpoFkbwI7joM_JN_huwxgjNHYg4wISnyMhKbn-qQqob4DNN2j85gNEHO4TF2NA2vCs74skeAel7x0zontklW3Rj0Ixn8fVnWr1LfvZNGkfdMFODxtsIwH7A9BzLhoSNRNL0glXc7sDyqYIT1Om39UVlK7ayGpLwHgGhuND4ZUzxFMdhwQ181OcrC9UQoAGAV8Oyz_uS250iuR4PTe9BIkvgzUBkMyoxjaRV3wZOTM5lpENeOJ7ieX2tikhzAo4EDvTh1HupKoFiNSEhZzav7aH4Ks811weuh2uWNEQK-9ZvuSCi8ArDAKZL5oF7grh6zIHetnHrm5rOhDXAWTYPr31j16ur7HNNI2ak2zTAlYhVCZ2gAb9OaEh-T3R3ZHzbrlTRYMLH24oINx6HEUZWEpLtXLeJt4-GmbTbHUdJ8ITWe-e0VkQuJC1EhlZ_JG5A5vAFmmaBnKCdBbdZUiDIlQOQ1vMIusYh3H9W_SWjjeWm27aDrynv1ZA3j09bXkl2l3gqdKpDJKxuHUsNdTJ-1WQvXS5eljMbdfBBKKstgt_1B1Lmqk1rVVD8xMwMTvP6z51teqmE17ABp_PCaVNA6XJzFibr-nahmgEuWddSlYKyqZZwSRh2L9_YxTKjU7_AYQ-Lx9cWx3Odzg6BCos8CtmNJZg3fal-ByMxTMv-uzKRjeV1E1wpBrS8b2fUPeH_yMs4vh346nE9A4rgmuf0tKakYXKw9p1oFP0xx3z00dodAmVBKlzFtr_r6zZ_k3_-aPhAnAWqrS7spvGoLF8%3D&Signature=X3TYar2NRhY15tvOlAIkQmsGWEk%3D
  • [技术干货] 华为云 OBS 文件图片上传下载代码
    package com.vulcan.controller.attachment; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.ObsObject; import com.vulcan.base.BaseController; import com.vulcan.common.util.oss.OBSClient; import com.vulcan.common.util.oss.OSSClientUtil; import com.vulcan.common.util.result.Result; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import sun.misc.BASE64Decoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.Date; /** * @描述:上传下载 * @创建时间:2019年04月16日 * @Copyright @2019 by lzh */ @Controller @RequestMapping("/web/attachment") @Slf4j public class Attachment extends BaseController { @Autowired OSSClientUtil ossClientUtil; /** * 5M */ private static final int MAX_POST_SIZE = 5 * 1024 * 1024; /** * 100M */ private static final int MAX_POST_SIZE_FILE = 100 * 1024 * 1024; public static synchronized String getOrder() { return DateFormatUtils.format(new Date(), "yyyyMMddHHmmssSSS") + RandomStringUtils.randomNumeric(6); } /** * 上传图片 * * @param file * @return */ @ResponseBody @RequestMapping(value = "/upload", method = RequestMethod.POST) public Result springUploadFile(MultipartFile file) { String fileName = null; try { if (file.isEmpty()) { return new Result(false, "1", "图片不存在"); } else { //如果上传图片大于5M不予上传 if (file.getSize() > MAX_POST_SIZE) { return new Result(false, "1", "上传图片不能大于5M"); } fileName = file.getOriginalFilename(); boolean isFile = StringUtils.endsWithAny(StringUtils.lowerCase(fileName), new String[]{".png", ".jpg", ".jpeg", ".bmp", ".gif"}); if (isFile) { InputStream inputStream =null; inputStream = file.getInputStream(); return new Result(true,"https://"+ OBSClient.getUrl(RandomStringUtils.random(16, "0123456789"), inputStream),0); // Object address = ossClientUtil.putObject(path, file); } else { return new Result(false, "1", "图片格式不正确"); } } } catch (Exception e) { e.printStackTrace(); return new Result(false, "1", "上传失败"); } } /** * 上传 * * @param file * @return */ @ResponseBody @RequestMapping(value = "/uploadFile", method = RequestMethod.POST) public Result uploadFile(MultipartFile file) { String fileName = null; try { if (file.isEmpty()) { return new Result(false, "1", "请选择图片/文件"); } else { fileName = file.getOriginalFilename(); String[] imgSuffix = {"jpg", "png", "bmp", "jpeg"}; String[] fileSuffix = {"doc", "docx", "pdf", "rar", "zip", "ppt", "xls", "xlsx","pptx"}; //String[] suffix = {"jpg", "png", "bmp", "jpeg", "doc", "docx", "pdf", "rar", "zip", "ppt", "xls", "xlsx"}; boolean isImage = StringUtils.endsWithAny(StringUtils.lowerCase(fileName), imgSuffix); boolean flag = false; Byte type = 0; if (isImage) { //如果上传图片大于5M不予上传 if (file.getSize() > MAX_POST_SIZE) { return new Result(false, "1", "上传图片不能大于5M"); } flag = true; } else { boolean isFile = StringUtils.endsWithAny(StringUtils.lowerCase(fileName), fileSuffix); if (isFile) { if (file.getSize() > MAX_POST_SIZE_FILE) { return new Result(false, "1", "上传文件不能大于100M"); } type = 1; flag = true; } } if (flag) { InputStream inputStream =null; inputStream = file.getInputStream(); String address = OBSClient.getUrl(RandomStringUtils.random(16, "0123456789"),inputStream); JSONObject jsonObject = new JSONObject(); jsonObject.put("type",type); jsonObject.put("url","https://"+address); jsonObject.put("name",fileName); log.info("上传返回值,jsonObject={}", JSON.toJSONString(jsonObject)); return new Result(true, "000","操作成功",jsonObject,0); } else { return new Result(false, "1", "格式不正确"); } } } catch (Exception e) { e.printStackTrace(); return new Result(false, "1", "上传失败"); } } /* public void OssAction(HttpServletRequest request, HttpServletResponse response) throws IOException { String endPoint = "obs.cn-north-1.myhuaweicloud.com"; String ak = "JRDWOVPEKTPCZRYKZCSP"; String sk = "9QCJHq5AL9Meo67pua0NXaMeWg6IjWq6xNPELgdf"; // 创建ObsClient实例 final ObsClient obsClient = new ObsClient(ak, sk, endPoint); ObsObject obsObject = obsClient.getObject("obs-ticket", "objectname"); // 读取对象内容 log.info("Object content:{}",obsObject); InputStream input = obsObject.getObjectContent(); byte[] b = new byte[1024]; ByteArrayOutputStream bos = new ByteArrayOutputStream(); int len; while ((len=input.read(b)) != -1){ bos.write(b, 0, len); } System.out.println(new String(bos.toByteArray())); bos.close(); input.close(); }*/ /** * 文件下载 * @param request * @param response * @param obsKey */ @RequestMapping(value = "/download", method = RequestMethod.GET) public void OssAction(HttpServletRequest request, HttpServletResponse response,String obsKey){ try { String fileName="fapiao.pdf"; String endPoint = "你的endpoint"; String ak = "你的ak"; String sk = "你的sk"; // 创建ObsClient实例 final ObsClient obsClient = new ObsClient(ak, sk, endPoint); ObsObject obsObject = obsClient.getObject("obs-ticket", obsKey.substring(52)); // 已缓冲的方式从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取 BufferedReader reader = new BufferedReader(new InputStreamReader(obsObject.getObjectContent())); InputStream inputStream = obsObject.getObjectContent(); //缓冲文件输出流 BufferedOutputStream outputStream=new BufferedOutputStream(response.getOutputStream()); //通知浏览器以附件形式下载 // response.setHeader("Content-Disposition","attachment;filename="+ URLEncoder.encode(fileName,"UTF-8")); // 为防止 文件名出现乱码 response.setContentType("application/doc"); final String userAgent = request.getHeader("USER-AGENT"); if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器 fileName = URLEncoder.encode(fileName,"UTF-8"); }else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器 fileName = new String(fileName.getBytes(), "ISO8859-1"); }else{ fileName = URLEncoder.encode(fileName,"UTF-8");//其他浏览器 } response.addHeader("Content-Disposition", "attachment;filename=" +fileName);//这里设置一下让浏览器弹出下载提示框,而不是直接在浏览器中打开 //进行解码 如果上传时为了防止乱码 进行解码使用此方法 /*BASE64Decoder base64Decoder = new BASE64Decoder(); byte[] car; while (true) { String line = reader.readLine(); if (line == null) break; car = base64Decoder.decodeBuffer(line); outputStream.write(car); } reader.close();*/ byte[] car = new byte[1024]; int L; while((L = inputStream.read(car)) != -1){ if (car.length!=0){ outputStream.write(car, 0,L); } } if(outputStream!=null){ outputStream.flush(); outputStream.close(); } } catch (IOException e) { e.printStackTrace(); log.error("e:{}",e.getMessage()); } catch (ObsException e){ e.printStackTrace(); log.error("e:{}",e.getMessage()); } } }
  • [已解决问题归档] OBS如何自检自己已有的功能。
    【问题来源】【必填】    武农商    【问题简要】【必填】  OBS如何自检自己已有的功能。【问题类别】【必填】    AICC平台功能【AICC解决方案版本】【必填】    【AICC版本:AICC 8.14】    【UAP版本:UAP9600 V100R005C00SPC018】    【CTI版本:ICD V300R008C22】【期望解决时间】【选填】    尽快【问题现象描述】【必填】  OBS如何自检自己已有的功能。【日志或错误截图】【可选】 
总条数:1618 到第 页
上滑加载中