将照片自动备份至Google+网络技巧_百度和google使用技巧
刀豆文库小编猜你可能喜欢“百度和google使用技巧”。
将照片自动备份至Google+网络技巧(精选2篇)由网友“蛤蟆的油”投稿提供,下面是小编收集整理的将照片自动备份至Google+网络技巧,供大家参考借鉴,欢迎大家分享。
篇1:将照片自动备份至Google+网络技巧
利用最新版本的Picasa,可以将照片自动备份到Google+相册,而且还可以自动选择上传图片的分辨率大小,
在Picasa安装之后的首次运行过程中,Picasa会提示是否设置自动备份,点击之后会弹出“自动备份”对话框,使用Google账号登录Google+相册,成功登录之后,可以选择允许自动备份的文件夹或设备(如图),点击“高级”按钮,可以设置是否允许将相册和存储卡中的照片/视频同时复制到计算机端,确认之后即可启动备份进程,
每次打开Picasa,只要已经使用Google账号登录,而且已启用“与网络相册同步”功能,那么可以通过右键菜单将某一相册手工上传到Google+相册。
出于保护照片版权的考虑,建议从“工具”菜单下打开“选项”对话框,切换到“网络相册”选项卡,在这里勾选“为所有上传的照片添加水印”复选框,如果勾选“每次同步时不需要确认”复选框,那么在执行同步操作时可以自动应用默认设置。
篇2:一种自动反射消息类型的 Google Protobuf 网络传输方案网络技巧
这篇文章要解决的问题是:在接收到 protobuf 数据之后,如何自动创建具体的 Protobuf Message 对象 ,再做的反序列化,“自动”的意思是:当程序中新增一个 protobuf Message 类型时,这部分代码不 需要 修改,不需要自己去注册消息类型。其实,Google Protobuf 本身具有很强的反射(reflection)功能, 可以 根据 type name 创建具体类型的 Message 对象,我们直接利用即可。
本文假定读者了解 Google Protocol Buffers 是什么,这不是一篇 protobuf 入门教程。
本文以 C++ 语言举例,其他语 言估计 有类似的解法,欢迎补充。
本文的示例代码在: github.com/chenshuo/recipes/tree/master/protobuf
网络编程中使用 protobuf 的两个问题
Google Protocol Buffers (Protobuf) 是一款非常优秀的库,它定义了一种紧凑的可扩展二进制消 息格 式,特别适合网络数据传输。它为多种语言提供 binding,大大方便了分布式程序的开发,让系统不再 局限 于用某一种语言来编写。
在网络编程中使用 protobuf 需要解决两个问题:
长度,protobuf 打包的数据没有自带长度信息或终结符,需要由应用程序自己在发生和接收的时候 做正 确的切分;
类型,protobuf 打包的数据没有自带类型信息,需要由发送方把类型信息传给给接收方,接收方创 建具 体的 Protobuf Message 对象,再做的反序列化。
第一个很好解决,通常的做法是在每个消息前面加个固定长度的 length header,例如我在 《Muduo 网 络编程示例之二: Boost.Asio 的聊天服务器》 中实现的 LengthHeaderCodec,代码见 code.google.com/p/muduo/source/browse/trunk/examples/asio/chat/codec.h
第二个问题其实也很好解决,Protobuf 对此有内建的支持,
但是奇怪的是,从网上简单搜索的情况 看, 我发现了很多山寨的做法。
山寨做法
以下均为在 protobuf data 之前加上 header,header 中包含 int length 和类型信息。类型信息 的山 寨做法主要有两种:
在 header 中放 int typeId,接收方用 switch-case 来选择对应的消息类型和处理函数;
在 header 中放 string typeName,接收方用 look-up table 来选择对应的消息类型和处理函数。
这两种做法都有问题。
第一种做法要求保持 typeId 的唯一性,它和 protobuf message type 一 一对应。如果 protobuf message 的使用范围不广,比如接收方和发送方都是自己维护的程序,那么 typeId 的唯一性不难保证,用版本管理工具即可。如果 protobuf message 的使用范围很大,比如全公司都在 用, 而且不同部门开发的分布式程序可能相互通信,那么就需要一个公司内部的全局机构来分配 typeId, 每次增 加新 message type 都要去注册一下,比较麻烦。
第二种做法稍好一点。typeName 的唯一性比 较好 办,因为可以加上 package name(也就是用 message 的 fully qualified type name),各个部门事 先分 好 namespace,不会冲突与重复。但是每次新增消息类型的时候都要去手工修改 look-up table 的初 始化代 码,比较麻烦。
其实,不需要自己重新发明轮子,protobuf 本身已经自带了解决方案。
根据 type name 反射自动创建 Message 对象
Google Protobuf 本身具有很强的反射(reflection)功能,可以根据 type name 创建具体类型的 Message 对象。但是奇怪的是,其官方教程里没有明确提及这个用法,我估计还有很多人不知道这个用 法, 所以觉得值得写这篇 blog 谈一谈。
以下是陈硕绘制的 Protobuf class diagram。