Java和Python对阿里云OCS的读写联调情况

目前项目用到了阿里云的OCS服务,芳姐用的OCS之Java客户端,另外一个团队用的是OCS的python客户端,因为开发语言不同,OCS的客户端对不同语言的兼容性还不太好,为此我们进行了多次协商,让我们能够互相读写OCS中的数据,过程如下:

1、  Java将JavaBean对象序列化后写入OCS的数据,Java读写没有问题,而且效率很高,但Python不能读。因此这个方案废除。

2、  JAVA将JavaBean对象用toString()转换成key=value数据对的字符串写入OCS,发现当value中包含=号时,读取数据错乱,因此这个方案也废除。

3、  JAVA将JavaBean对象转换JSON格式字符串写入OCS,Java读出来后再转换成JavaBean对象,两次转换都需要消耗一定的时间。JAVA读写没有问题,但Python读出来中文乱码。

4、  为了解决中文乱码的问题,我们再接着考虑:把JSON格式字符串在写入OCS之前进行UrlEncoder进行编码,把中文汉字和符号进行转换,这时Python读出后先进行UrlDecoder解码,汉字可以正常显示了,但Python处理完UrlEncoder编码后回写到OCS时,Java读出了乱码,OCS控制台看到的也是乱码。

找了阿里云,阿里云那边的回复是不同语言OCS客户端的兼容性问题引起,python写入超过128字节的时候会出现乱码,控制台一旦看到是乱码,java客户端读到的就会是乱码,这是OCS的客户端问题,现在提交工单的话,也不知道何时能够解决。——最后得到的回复是:建议使用同一种语言进行项目开发!

另外,对象进行了JSON转换后,又进行了UrlEncoder编码,这个转换时间几乎超过目前阿里云平台上读取RDS中的记录的时间,因此,就是OCS能解决客户端的问题,我觉得这种方案也存在缺陷。

时间: 2024-08-03 18:58:44

Java和Python对阿里云OCS的读写联调情况的相关文章

阿里云 OCS SDK for NodeJS介绍

阿里云技术团队:熊亮 阿里云 SDK for NodeJS 是为 NodeJS 开发者提供使用阿里云各项服务的统一入口,由阿里云UED团队负责开发维护.目前集成了OCS(Memcached), OSS, RDS(MySQL) 三项阿里云服务.代码地址:https://github.com/aliyun-UED/aliyun-sdk-js 使用阿里云 OCS SDK for NodeJS 接入阿里云 OCS 将会变得非常简单.当你通过试用或者购买获得阿里云 OCS 服务的实例,即对应的 ocsKe

C#链接阿里云OCS

一.阿里云OCS简单介绍 阿里云OCS兼容Memcached,因为OCS就相当于Memcached的服务器端,我们代码只是当作客户端,链接上服务器端就行了.阿里云OCS介绍详情见 http://www.aliyun.com/product/ocs?spm=5176.2020520107.0.0.s2zgFk#Help . 二.C#客户端链接OCS 1.阿里云文档上介绍的是用Enyim.Caching去链接OCS.那我们项目中就用nuget去下载Enyim.Caching包.nuget搜索Enyi

【阿里云产品公测】在Laravel4框架中使用阿里云OCS缓存

作者:阿里云用户 supechina Laravel 是我最近用得非常多而且越用就越喜欢的一款PHP框架,由于没有向下兼容的历史包袱,完全面向对象的风格,借助 Facades 优雅的 IoC Container 实现,采用 Composer 进行包管理,可以方便地引入和使用开源社区里的优秀组件……总而言之,这是一款真正让你能够 "code happy" 的“巨匠级PHP开发框架”. 在尝试把自己的 Laravel App 部署到阿里云的时候,遇到了一个问题: Laravel 支持 Me

Python使用阿里云OSS服务

Python使用阿里云OSS服务 前言: 在远程搭建了一个平台,通过改远程平台进行数据的采集,需要将数据内容传送至本地进行处理:为了实现该功能,考虑了阿里云的OSS对象储存的服务. 40G包月只需1元:-) 甚至还有客服致电给你,说有问题可直接通过电话联系对方,15星好评 OSS安装 关于账号注册,开通服务等等功能直接去阿里云的官方进行相应操作即可 安装python-devel win:此过程不需要,在安装Python时已经包含了: Debian/Ubuntu:apt-get install p

python使用阿里云oss-sdk

python使用阿里云oss-python-sdk 请访问github获取源码 安装 pip install oss2 安装验证 >>> import oss2 >>> oss2.__version__ ''2.8.0'' 上面的输出表明您已经成功安装了Python SDK 2.8.0. 创建存储空间 import oss2 auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>'

.Net程序测试使用阿里云OCS开放缓存服务

 首先需要有一个阿里的OCS实例和ECS云服务器 请确认这两个是在同一个可用区的,这个很重要! 这两个可以在阿里云官网申请得到 拿到OCS之后 进入OCS控制台,点击下面的客户端下载选择.Net客户端,或者直接点这里下载.Net客户端 下载下来的是一个压缩文件,解压之后是可能是一个没有格式的文件,不要管它,用winrar或者其他的解压软件在解压一次 得到一个文件夹,里面放的是一个VS的解决方案,如图 这就是一个客户端,双击打开解决方案 选择Enyim.Caching项目重新生成一下 右键打开

Python 调用阿里云 API 收集 ECS 数据

#!/usr/bin/env python # coding: utf-8 # author: Wang XiaoQiang ''' 功能介绍: 1.调用阿里云API,收集所有区域 ECS 信息 2.将需要的数据整理.生成 Excel 文档 3.关于阿里 sdk 的安装,api 的调用请参考阿里云官网 4.xlsxwriter 请参考这里:http://xlsxwriter.readthedocs.org/ ''' import json, sys try: from termcolor imp

python封装 阿里云api

最近用到阿里云的API和SDK ,用python封装了一下基础类,我只是用查询一下接口的信息,别的没有测试过,可以看看 内容如下: #-*- coding: utf-8 -*-# author: sunwei import jsonimport uuidfrom urllib import requestimport hmac,base64from hashlib import sha1from datetime import datetime, timedelta, timezone,date

部署 Java 应用程序到阿里云 ECS

前言 随着云计算技术突飞猛进的发展,越来越多的开发者选择将应用程序部署到阿里云的 ECS 机器上,这里是一篇教程文章,介绍如何将本地开发的 Java 应用程序,部署到阿里云 ECS. 本地开发 无论是编写云端运行的,还是编写本地运行的 Java 应用程序,代码编写本身并没有特别大的变化,因此本文采用一个及其基础的样例<在 Web 页面打印 HelloWorld 的 Java Servlet >为例,做参考. public class IndexServlet extends HttpServl