是什么关于照片的网站吗?

发布时间:2021年04月08日 来源:江北作家维权律师 浏览:266

[导读]:   宋律师,#key,现执业于***律师事务所,严格遵守律师职业道德和执业纪律,秉承诚信、谨慎、勤勉、高效的执业理念,受人之托、忠人之事,最大限度地维护当事人的利益。宋律师从事法律工作多年来,恪尽职守,为当事人提供快捷、

  ,,现执业于***律师事务所,严格遵守律师职业道德和执业纪律,秉承诚信、谨慎、勤勉、高效的执业理念,受人之托、忠人之事,最大限度地维护当事人的利益。从事法律工作多年来,恪尽职守,为当事人提供快捷、优质、高效的法律服务,取得了良好的社会效果,为法制建设尽了绵薄之力;在办案中不畏权贵、据理力争、维权护法,受到当事人和法院的高度认可和评价。

在网站公开很多年老照片侵犯肖像权吗 ?

肇事逃逸怎么处罚 交通肇事逃逸 交通肇事 交通肇事致人死亡 轻微肇事逃逸处罚 肇事逃逸后自首

侵犯肖像权的情况在我们生活当中是很常见的但是这几年来还是经过相关的整改,大家在这方面都有所改变,侵犯率也在大大的降低,自己的照片是属于个人的隐私,如果没有经过自己同意而别人将其发布的话也是会侵犯到 肖像权的,那么在网站公开很多年老照片侵犯肖像权吗 ,下面就跟来一起看看吧。

肖像权也会受到一些限制,存在一些违法阻却事由,在司法实践及法学理论上,主要包括以下几种:

1、为社会公共利益而使用肖像的行为,如公安机关发布通缉令而使用犯罪嫌疑人的肖像,司法人员为司法证据目的而对犯罪嫌疑人进行拍照;参加游行、示威和公开演讲的人,因其活动目的具有公共性,而不得反对他人对上述活动的拍照;

2、为公民本人利益而使用肖像的行为,如公民因亲人走失对外发布寻人启事而使用肖像;

3、为社会新闻报道而使用肖像的行为,有特殊新闻价值的人,不得反对记者的善意拍照,如为弘扬社会正气或揭露社会丑恶现象而使用公民肖像,还有特别幸运者或特别不幸者、重大事件的当事人或者在场人等,均属于这种情况;

4、善意使用政治家及社会明星肖像的行为,政治家、影视和体育明星以及其他公共人士,在公开露面时,不得反对他人拍照。

如何认定侵犯肖像权的行为

我国《民法通则》第一百条规定,“公民享有肖像权,未经本人同意,不得以营利为目的使用公民的肖像。”

由此可见,构成侵犯公民肖像权的行为,通常应具备两个要件:

常见的侵犯公民肖像权的行为,主要是未经本人同意、以营利为目的使用他人肖像做商业广告、商品装潢、书刊封面及印刷挂历等。对于侵犯肖像权行为,受害人可自力制止,例如请求交出所拍胶卷,除去公开陈列肖像等,也可以依法请求加害人停止侵害、排除妨碍、消除影响或赔偿损失等。赔偿损失请求权,不以财产损害为要件。同时,最高人民法院关于贯彻执行《民法通则》若干问题的意见第139条规定:以赢利为目的,未经公民同意利用其肖像作广告、商标、装饰橱窗等,应当认定为侵犯公民肖像权的行为。除此之外,恶意毁损、玷污、丑化公民的肖像,或利用公民肖像进行人身攻击等,也属于侵害肖像权的行为。

但是,并不是所有的未经本人同意而使用其肖像的行为都会构成侵权。根据我国法律规定,在某些特定情况下,因社会公共利益,可未经肖像权人的同意而使用其肖像:

使用社会公众人物肖像;

为宣传报道而使用参加游行集会、游园活动的人的肖像;

旨在行使正当的舆论监督而使用公民的肖像;

因通缉犯罪嫌疑人或报道已判决案件而使用罪犯的照片;

为肖像权本人的利益而使用其照片;

国家机关为执行、适用法律而使用公民的肖像;

作为证据而使用公民的肖像;

为了科学研究和文化教育目的而在一定范围内使用他人肖像。

综上所述,以上就是关于在网站公开很多年老照片侵犯肖像权吗的相关知识,关于这一问题,我们只需要明白一个道理,那就是不管在什么地方,只要是公共场合且没有经过本人同意而进行这种行为都算是侵犯肖像权的表现,所以我们在生活当中一定要避免这种情况的发生。

图片著作权一般是属于谁的

图片也是有版权的,而这个版权其实就是我国法律中规定的著作权,这在图片被创作之时起就是自动取得了著作权,同时也是受到我国法律保护的。但是很多时候会对拍摄出来的图片做进一步的加工,这个时候对于图片著作权的归属可能就不太确定了。下文中为你详细解答这个问题。

一、图片著作权是属于谁的

著作权中的人身权包括发表权,署名权、修改权和保护作品完整权。发表权,就是决定作品是否公之于众的权利,如在摄影杂志上刊发摄影作品。署名权是指作者在作品上署上自己名字的权利,著作权人通过行使署名权表明其身份:当然作者也可署上自己的艺名或笔名,也可在一定的条件下自愿选择不署名。修改权,是指自己修改或授权他人修改作品的权利,如摄影师对自己拍摄的照片进行适当的剪裁。而一般认为,图片编辑对投稿图片的划痕进行修复,对色彩、亮度做微调。以及为排版需要对图片做适度的剪切。不构成对作品修改权的侵犯。保护作品完整权,就是保护作品不受歪曲、篡改的权利。就图片而言,未经作者授权,不得对图片进行剪切或变形处理,不得对图片中的影像进行添加或删除,也不得对图片的色彩进行改变等等。

而图片作品著作权中的财产权主要是使用权和获得报酬权。使用权,主要是指作者或著作权人可以以复制、发行、出租、展览、播放、改编、网络传播等方式使用图片。而获得报酬权,是指图片著作权人通过各种方式使用图片,获得物质和经济上的回报。以上所述的权利均为我国著作权法所确认,然而著作权法却未对财产权中另外一种权利追续权作规定。事实上追续权对图片著作权人而言意义非常重大。以下就追续权做一简单介绍。

追续权是著作权人的财产权利之一,其基本含义是指:艺术作品,尤其是摄影、美术作品的著作权人对其作品原件每一次售出以后的财产增值部分都有提成一定比例的权利,也就是说,享有著作权的艺术作品原件被售出以后,如果原购买人又转售给他人并获得了高于购买时所支付的金额,则作品的原作者有权就该作品增值金额部分提取一定比例。无论该作品转卖次数如何及辗转落入何人之手,只要售价比购买价高,原作者就有取其中一部分的权利。追续权制度最早由法国确立,《伯尔尼保护文学和艺术作品公约》第14条也对此做了规定,我国1992年12月加入了该公约。迄今,我国著作权法仍未对追续权做出任何规定。随着我国图片收藏市场和拍卖市场的不断发展,以及我国图片市场的不断国际化,我国应对图片作品的追续权有所规定。在此过程中,摄影师以及图片代理商,特别是相关摄影行业组织和图片行业组织,应通过相应途径积极向国家建言,争取早日在我国确立作品的追续权。

我国著作权法第11条规定,著作权属于作者,本法另有规定的除外。创作作品的公民是作者。由法人或者其他组织主持。代表法人或者其他组织意志创作,并由法人或者其他组织承担的作品,法人或者其他组织视为作者。如无相反证明,在作品上署名的公民、法人或者其他组织为作者。另外,该法第12条至19条对著作权归属的种种情况做了清晰的归类和说明。

二、摄影作品的著作权归谁

根据《著作权法实施条例》对摄影作品的定义,摄影作品是指借助器械在感光材料或者其他介质上记录客观物体形象的艺术作品。通常,对以自动摄像机拍摄的护照像,因为不包含人的智力创作,一般不承认其享有著作权;而除此之外对人拍摄的证件照应可以成为著作权保护的对象。但由于证件照要求真实、清晰再现拍照对象的外表,反映的不是拍摄者对事物的认识和要借此表达的思想情感,而且完成的作品主要用于拍摄对象作身份验证用,因此客观上不存在保护拍摄者对证件照的著作权的需要,相反如著作权由拍摄者享有,可能影响证件照的正常使用。在实践中,拍摄者应顾客要求拍摄证件照,拍摄者收取拍摄费,拍摄完成后将底片及洗印的照片交付拍摄对象,这在法律上实际上双方构成一种委托创作关系:拍摄者受托拍照并交付底片,视为双方确认完成的作品的著作权归委托人即拍摄对象享有,拍摄对象可自主决定照片的使用及处理。由于证件照的使用用途,拍摄对象一般不会自称为照片的拍摄人,对拍摄者的署名权等权益也不会有什么损害。

与证件照情况不同的是,人物艺术照,不论是完全个性的摄影,还是模式化的艺术摄影,需要摄影师更多的智力创作投入,包括对拍摄对象特点的把握及表现构思、取景布局、光线、技巧应用等,且追求艺术性、突出表现人物的美感。因此,人物艺术照作品完全符合著作权规定的摄影作品定义,可以获得著作权。由于人物摄影作品,涉及到被拍者的肖像权,因此其使用将同时涉及到著作权及肖像权问题。摄影师与拍摄对象应通过委托合同的具体约定来妥善解决使用及权益归属问题。

就著作权的取得来看,除了软件著作权的取得比较特殊外,其余作品的著作权取得都是自动的,即从作品被创作出来就会自动的取得著作权,同时也会受到我国相关法律的保护。而对于图片著作权的归属问题,一般认为是属于作者所有的。

版权声明:版权归原作者所有,如有侵权请立即与我们联系,我们将及时删除或修改处理。感谢您的配合!!

数据库一向是网站架构中最具挑战性的,瓶颈通常出现在这里。又拍网的照片数据量很大,数据库也几度出现严重的压力问题。 因此,这里我主要介绍一下又拍网在分库设计这方面的一些尝试。

又拍网是一个照片分享社区,从2005年6月至今积累了260万用户,1.1亿张照片,目前的日访问量为200多万。5年的发展历程里经历过许多起伏,也积累了一些经验,在这篇文章里,我要介绍一些我们在技术上的积累。

又拍网和大多数Web2.0站点一样,构建于大量开源软件之上,包括、、、、、、、和等等。又拍网的服务器端开发语言主要是和,其中用于编写Web逻辑(通过HTTP和用户直接打交道), 而则主要用于开发内部服务和后台任务。在客户端则使用了大量的Javascript, 这里要感谢一下这个JS框架,它使得我们很享受前端开发过程。 另外,我们把图片处理过程从进程里独立出来变成一个服务。这个服务基于,但是是作为的一个模块而开放REST API。

由于的单线程模型,我们把耗时较久的运算和I/O操作从HTTP请求周期中分离出来, 交给由实现的任务进程来完成,以保证请求响应速度。这些任务主要包括:邮件发送、数据索引、数据聚合和好友动态推送(稍候会有介绍)等等。通常这些任务由用户触发,并且,用户的一个行为可能会触发多种任务的执行。 比如,用户上传了一张新的照片,我们需要更新索引,也需要向他的朋友推送一条新的动态。通过消息队列(我们用的是)来触发任务执行。

数据库一向是网站架构中最具挑战性的,瓶颈通常出现在这里。又拍网的照片数据量很大,数据库也几度出现严重的压力问题。 因此,这里我主要介绍一下又拍网在分库设计这方面的一些尝试。

和很多使用的2.0站点一样,又拍网的集群经历了从最初的一个主库一个从库、到一个主库多个从库、 然后到多个主库多个从库的一个发展过程。

最初是由一台主库和一台从库组成,当时从库只用作备份和容灾,当主库出现故障时,从库就手动变成主库,一般情况下,从库不作读写操作(同步除外)。随着压力的增加,我们加上了,当时只用其缓存单行数据。 但是,单行数据的缓存并不能很好地解决压力问题,因为单行数据的查询通常很快。所以我们把一些实时性要求不高的Query放到从库去执行。后面又通过添加多个从库来分流查询压力,不过随着数据量的增加,主库的写压力也越来越大。

在参考了一些相关产品和其它网站的做法后,我们决定进行数据库拆分。也就是将数据存放到不同的数据库服务器中,一般可以按两个纬度来拆分数据:

垂直拆分:是指按功能模块拆分,比如可以将群组相关表和照片相关表存放在不同的数据库中,这种方式多个数据库之间的表结构不同

水平拆分:而水平拆分是将同一个表的数据进行分块保存到不同的数据库中,这些数据库中的表结构完全相同

一般都会先进行垂直拆分,因为这种方式拆分方式实现起来比较简单,根据表名访问不同的数据库就可以了。但是垂直拆分方式并不能彻底解决所有压力问题,另外,也要看应用类型是否合适这种拆分方式。如果合适的话,也能很好的起到分散数据库压力的作用。比如对于我觉得比较适合采用垂直拆分, 因为的各核心业务/模块(书籍、电影、音乐)相对独立,数据的增加速度也比较平稳。不同的是,又拍网的核心业务对象是用户上传的照片,而照片数据的增加速度随着用户量的增加越来越快。压力基本上都在照片表上,显然垂直拆分并不能从根本上解决我们的问题,所以,我们采用水平拆分的方式。

水平拆分实现起来相对复杂,我们要先确定一个拆分规则,也就是按什么条件将数据进行切分。 一般2.0网站都以用户为中心,数据基本都跟随用户,比如用户的照片、朋友和评论等等。因此一个比较自然的选择是根据用户来切分。每个用户都对应一个数据库,访问某个用户的数据时, 我们要先确定他/她所对应的数据库,然后连接到该数据库进行实际的数据读写。

那么,怎么样对应用户和数据库呢?我们有这些选择:

最简单的算法是按用户ID的奇偶性来对应,将奇数ID的用户对应到数据库A,而偶数ID的用户则对应到数据库B。这个方法的最大问题是,只能分成两个库。另一个算法是按用户ID所在区间对应,比如ID在0-10000之间的用户对应到数据库A, ID在这个范围的对应到数据库B,以此类推。按算法分实现起来比较方便,也比较高效,但是不能满足后续的伸缩性要求,如果需要增加数据库节点,必需调整算法或移动很大的数据集, 比较难做到在不停止服务的前提下进行扩充数据库节点。

这种方法是指建立一个索引表,保存每个用户的ID和数据库ID的对应关系,每次读写用户数据时先从这个表获取对应数据库。新用户注册后,在所有可用的数据库中随机挑选一个为其建立索引。这种方法比较灵活,有很好的伸缩性。一个缺点是增加了一次数据库访问,所以性能上没有按算法对应好。

比较之后,我们采用的是索引表的方式,我们愿意为其灵活性损失一些性能,更何况我们还有, 因为索引数据基本不会改变的缘故,缓存命中率非常高。所以能很大程度上减少了性能损失。

索引表的方式能够比较方便地添加数据库节点,在增加节点时,只要将其添加到可用数据库列表里即可。 当然如果需要平衡各个节点的压力的话,还是需要进行数据的迁移,但是这个时候的迁移是少量的,可以逐步进行。要迁移用户A的数据,首先要将其状态置为迁移数据中,这个状态的用户不能进行写操作,并在页面上进行提示。 然后将用户A的数据全部复制到新增加的节点上后,更新映射表,然后将用户A的状态置为正常,最后将原来对应的数据库上的数据删除。这个过程通常会在临晨进行,所以,所以很少会有用户碰到迁移数据中的情况。

当然,有些数据是不属于某个用户的,比如系统消息、配置等等,我们把这些数据保存在一个全局库中。

分库会给你在应用的开发和部署上都带来很多麻烦。

不能执行跨库的关联查询

如果我们需要查询的数据分布于不同的数据库,我们没办法通过JOIN的方式查询获得。比如要获得好友的最新照片,你不能保证所有好友的数据都在同一个数据库里。一个解决办法是通过多次查询,再进行聚合的方式。我们需要尽量避免类似的需求。有些需求可以通过保存多份数据来解决,比如User-A和User-B的数据库分别是DB-1和DB-2, 当User-A评论了User-B的照片时,我们会同时在DB-1和DB-2中保存这条评论信息,我们首先在DB-2中的photo_comments表中插入一条新的记录,然后在DB-1中的user_comments表中插入一条新的记录。这两个表的结构如下图所示。这样我们可以通过查询photo_comments表得到User-B的某张照片的所有评论, 也可以通过查询user_comments表获得User-A的所有评论。另外可以考虑使用全文检索工具来解决某些需求, 我们使用来提供全站标签检索和照片搜索服务。

不能保证数据的一致/完整性

跨库的数据没有外键约束,也没有事务保证。比如上面的评论照片的例子, 很可能出现成功插入photo_comments表,但是插入user_comments表时却出错了。一个办法是在两个库上都开启事务,然后先插入photo_comments,再插入user_comments, 然后提交两个事务。这个办法也不能完全保证这个操作的原子性。

所有查询必须提供数据库线索

比如要查看一张照片,仅凭一个照片ID是不够的,还必须提供上传这张照片的用户的ID(也就是数据库线索),才能找到它实际的存放位置。因此,我们必须重新设计很多URL地址,而有些老的地址我们又必须保证其仍然有效。我们把照片地址改成/photos/{username}/{photo_id}/的形式,然后对于系统升级前上传的照片ID, 我们又增加一张映射表,保存photo_id和user_id的对应关系。当访问老的照片地址时,我们通过查询这张表获得用户信息, 然后再重定向到新的地址。

如果要在节点数据库上使用自增字段,那么我们就不能保证全局唯一。这倒不是很严重的问题,但是当节点之间的数据发生关系时,就会使得问题变得比较麻烦。我们可以再来看看上面提到的评论的例子。如果photo_comments表中的comment_id的自增字段,当我们在DB-2.photo_comments表插入新的评论时, 101 ...)的数据。 那么我们要怎么设置user_comments表的主键呢(标识一行数据)?可以不设啊,不幸的是有的时候(框架、缓存等原因)必需设置。那么可以以user_id、 comment_id和photo_id为组合主键,但是photo_id也有可能一样(的确很巧)。看来只能再加上photo_owner_id了, 但是这个结果又让我们实在有点无法接受,太复杂的组合键在写入时会带来一定的性能影响,这样的自然键看起来也很不自然。所以,我们放弃了在节点上使用自增字段,想办法让这些ID变成全局唯一。为此增加了一个专门用来生成ID的数据库,这个库中的表结构都很简单,只有一个自增字段id。 当我们要插入新的评论时,我们先在ID库的photo_comments表里插入一条空的记录,以获得一个唯一的评论ID。 当然这些逻辑都已经封装在我们的框架里了,对于开发人员是透明的。 为什么不用其它方案呢,比如一些支持incr操作的Key-Value数据库。我们还是比较放心把数据放在MySQL里。 另外,我们会定期清理ID库的数据,以保证获取新ID的效率。

我们称前面提到的一个数据库节点为Shard,一个Shard由两个台物理服务器组成, 我们称它们为Node-A和Node-B,Node-A和Node-B之间是配置成Master-Master相互复制的。 虽然是Master-Master的部署方式,但是同一时间我们还是只使用其中一个,原因是复制的延迟问题, 当然在Web应用里,我们可以在用户会话里放置一个A或B来保证同一用户一次会话里只访问一个数据库, 这样可以避免一些延迟问题。但是我们的任务是没有任何状态的,不能保证和应用读写相同的数据库。那么为什么不配置成Master-Slave呢?我们觉得只用一台太浪费了,所以我们在每台服务器上都创建多个逻辑数据库。 而访问Shard-002的数据则是连接Node-B上的shard_002。以这种交叉的方式将压力分散到每台物理服务器上。 以Master-Master方式部署的另一个好处是,我们可以不停止服务的情况下进行表结构升级, 升级前先停止复制,升级Inactive的库,然后升级应用,再将已经升级好的数据库切换成Active状态, 原来的Active数据库切换成Inactive状态,然后升级它的表结构,最后恢复复制。 当然这个步骤不一定适合所有升级过程,如果表结构的更改会导致数据复制失败,那么还是需要停止服务再升级的。

前面提到过添加服务器时,为了保证负载的平衡,我们需要迁移一部分数据到新的服务器上。为了避免短期内迁移的必要,我们在实际部署的时候,每台机器上部署了8个逻辑数据库, 添加服务器后,我们只要将这些逻辑数据库迁移到新服务器就可以了。最好是每次添加一倍的服务器, 然后将每台的1/2逻辑数据迁移到一台新服务器上,这样能很好的平衡负载。当然,最后到了每台上只有一个逻辑库时,迁移就无法避免了,不过那应该是比较久远的事情了。

我们把分库逻辑都封装在我们的PHP框架里了,开发人员基本上不需要被这些繁琐的事情困扰。下面是使用我们的框架进行照片数据的读写的一些例子:

首先要定义一个ShardedDBTable对象,所有的API都是通过这个对象开放。第一个参数是对象类型名称, 如果这个名称已经存在,那么将返回之前定义的对象。你也可以通过get_table('Photos')这个函数来获取之前定义的Table对象。 第二个参数是对应的数据库表名,而第三个参数是数据库线索字段,你会发现在后面的所有API中全部需要指定这个字段的值。 第四个参数是字段定义,其中photo_id字段的global_auto_increment属性被置为true,这就是前面所说的全局自增ID, 只要指定了这个属性,框架会处理好ID的事情。

如果我们要访问全局库中的数据,我们需要定义一个DBTable对象。

DBTable是ShardedDBTable的父类,除了定义时参数有些不同(DBTable不需要指定数据库线索字段),它们提供一样的API。

我们的框架提供了缓存功能,对开发人员是透明的。

比如上面的方法调用,框架先尝试以Photos-1-10001为Key在缓存中查找,未找到的话再执行数据库查询并放入缓存。当更改照片属性或删除照片时,框架负责从缓存中删除该照片。这种单个对象的缓存实现起来比较简单。稍微麻烦的是像下面这样的列表查询结果的缓存。

我们把这个查询分成两步,第一步先查出符合条件的照片ID,然后再根据照片ID分别查找具体的照片信息。 这么做可以更好的利用缓存。第一个查询的缓存Key为Photos-list-{shard_key}-{md5(查询条件SQL语句)}, Value是照片ID列表(逗号间隔)。其中shard_key为user_id的值1。目前来看,列表缓存也不麻烦。 但是如果用户修改了某张照片的上传时间呢,这个时候缓存中的数据就不一定符合条件了。所以,我们需要一个机制来保证我们不会从缓存中得到过期的列表数据。我们为每张表设置了一个revision,当该表的数据发生变化时(调用insert/update/delete方法),

revision信息也是存放在缓存里的,Key为Photos-revision。这样做看起来不错,但是好像列表缓存的利用率不会太高。因为我们是以整个数据类型的revision为缓存Key的后缀,显然这个revision更新的非常频繁,任何一个用户修改或上传了照片都会导致它的更新,哪怕那个用户根本不在我们要查询的Shard里。要隔离用户的动作对其他用户的影响,我们可以通过缩小revision的作用范围来达到这个目的。

因为全局库没有shard_key,所以修改了全局库中的表的一行数据,还是会导致整个表的缓存失效。 但是大部分情况下,数据都是有区域范围的,比如我们的帮助论坛的主题帖子, 帖子属于主题。修改了其中一个主题的一个帖子,没必要使所有主题的帖子缓存都失效。 所以我们在DBTable上增加了一个叫isolate_key的属性。

会导致其它相册的照片列表缓存也失效。如果我指定这张表的isolate_key为album_id的话, 我们就把这种影响限制在了本相册内。

我们的缓存分为两级,第一级只是一个PHP数组,有效范围是Request。而第二级是memcached。这么做的原因是,很多数据在一个Request周期内需要加载多次,这样可以减少memcached的网络请求。另外我们的框架也会尽可能的发送memcached的gets命令来获取数据, 从而减少网络请求。

这个架构使得我们在很长一段时间内都不必再为数据库压力所困扰。我们的设计很多地方参考了和的实现,因此非常感谢他们将一些实现细节发布出来。

周兆兆(Zola,不是你熟知的那个),又拍网架构师。6年IT从业经验,不太专注于某项技术,对很多技术都感兴趣。

    关注技术领域的头条文章

    聚合全网技术文章,根据你的阅读喜好进行个性推荐

聚合全网技术文章,根据你的阅读喜好进行个性推荐

深圳市奥思网络科技有限公司版权所有

我要回帖

更多关于 照片相册 的文章

 

随机推荐