如何在网站上撰写和放置超过100,000张画的照片库

假设您有> 100,000张图像需要分类并方便地放在网络上以进行大规模查看。它可以是任何东西-人类创造的所有艺术品的画廊(在我完成的任务中),或者莫斯科市的历史照片档案,或者电影的剧照,或者主要旅行社度假的照片总档案库,或者股票插图和照片的网站,或者大型媒体的图像存档已经很多年了-在其中必须进行整理,组织导航并从内部网络访问员工。



我将告诉您如何对其进行编程。



关键字及其继承



所有照片库和画廊使用的现代方法是为插图提供一组标签(关键字)。我已经从两个方向开发了这种方法:(1)可以继承标签(用户正在寻找浆果-他发现了带有“樱桃”标签的图片),并且(2)可以将标签附加到单个插图而不是目录的级别。



这种标记方法的缺点是您基于关键字进行搜索,而忽略了图片的内容。被女孩杀死的龙和杀死女孩的龙是两个不同的情节,但单词列表是相同的:Dragon,Girl,Death和Winner(如果有战斗)。基于关键字的方法将不允许检索查询“死龙”的样本,该样本不包括战胜被杀死的敌人的龙的图像。



主要标签是用户在字母目录中可见的那些标签。附加标签是仅通过在搜索字符串的文本中手动输入这些标签的名称才对用户可用的标签。我考虑了标签的最佳数量:图像数量的主要= 1/75,附加= 1/195。



将文件名中的标签的复数形式(骑乘者,山脉等)指定为<标签名称>! (即感叹号)。您将需要有关如何调用标签的字典-复数形式,女性/男性,同义词,拼写错误。



将标签词典保存在4个文件中:Marks.csv-主标签,Other.csv-其他标签,Wrong.csv-不正确的拼写,同义词,复数标签名称,Artists.csv-作者。在Marks.csv和Other.csv文件中,标记标识符和俄语的主要名称之后,列出了父标记(即继承)



Marks.csv



Arwen; ( );Person,Girl,Elf,LordOfTheRings
ThorinOakenshield; ;Person,Male,Beard,LordOfTheRings


在这里,阿文是《指环王》中的角色,女孩,小精灵和角色。Thorin Oakenshield-一个人,一个男人,留着胡须,其特征是“指环王”。因此,当用户搜索“指环王”时,将找到Arwen和Thorin的所有图像。当寻找“胡须”时-将有索林。当您搜索“ Thorin”时,也会发现它,因为该缩写拼写在Wrong.csv中。



资料夹结构



如果将“显示女孩”或“显示太阳”样本叠加在100,000张图像上,结果的数量将太大。但是,如果将图像拆分到文件夹中,则不会发生这种情况。例如,在根目录中有一个Dragons文件夹,在其中有一个Yellow文件夹,在其中有一个Girls文件夹(即带有女孩的图像),在其中(所有子文件夹中)有200张图像。在这种情况下,不是这200张图像会出现在搜索结果中,而是包含它们的文件夹中。对用户也更好。



但是,这里存在紧密联系的问题。国王几乎总是在图像中戴王冠,但并非在所有情况下都戴王冠。假设有一个名为Kings的文件夹,其中包含3000张图像,其中2500张为王冠。在这里,关于表冠-显示文件夹的简单方法不起作用。



我认为最佳文件夹数量=图片数量的1/28



如您所知,如果文件已经在Dragons / Yellow / Girls文件夹中,则无需将这些标签添加到文件名,只需添加那些不跟随文件名的标签标识符从其存储位置开始。







多语言,图标,文本,虚拟子文件夹



在每个文件夹中创建一个大小为200(宽)* 280(高)的文件_.jpg-当用户位于父文件夹中以及用户浏览搜索结果(如果找到)时,这是查看文件时的文件夹图标(文本显示在其上)。此文件夹)。关键字图标具有相同的分辨率。



此外,在许多文件夹中也会创建文件_.txt,该文件由以下几行组成:



Artefact \ _。Txt (片段)



=Mielofon
=Mjolnir
=Palantir
 =ThanosGlove
=Glass-Potion
by-DavisonCarvalho=*
TheWitcher/Wolf-Head-Logo| 
DisneyPrincess/Moana/HeartOfTeFiti|  
SuperHeroes/Hellraiser/HellraiserBox| 
-m|Artefact


在这里,我们看到记录的类型:



  1. 烧瓶=玻璃药水 -子文件夹的别名。在上面的插图中,我们看到Japan文件夹的化名未记录,并且在查看该文件夹时未将其翻译成俄语。两个标签-玻璃和药水(玻璃和药水)被翻译成一个词。
  2. by-DavisonCarvalho = * -无需别名
  3. SuperHeroes / Hellraiser / HellraiserBox | Lemarshan的Box是一个虚拟子文件夹。另一个目录中的子文件夹也将以给定名称显示在此处。
  4. -m | Artefact-该文件夹代表Artifact标签。如果在此标签上附加了文字,则文字将写在插图下方。


磁盘大小



现在,111000张图像占据65GB的磁盘空间。尽管存在以下事实,但在许多情况下有必要使用它们制作更重的png格式:



  • ( ), paint-.
  • - , .
  • .webp, .png, (, , ).
  • .png, .jpg, .gif. .




index.php-不带参数启动,它显示图库根文件夹,字母和搜索字符串。通过单击根文件夹中的子文件夹,它会转到该文件夹​​。通过单击字母,它会转到以该字母开头的主要标签。当您在搜索字符串中输入文本时,它将转到该文本标识的标签。



i.php是用于查看一个选定图像的工具。允许您从该图像匹配的列表中导航到标签。

img -Web Gallery的根文件夹

m-包含所有图像的缩略图的文件夹。缩略图的高度为200,宽度与图像成比例。 m文件夹的结构遵循img文件夹的结构。在上传画廊的每个版本之前,将以编程方式创建m文件夹。

标签 -每个关键字都包含一个文件,其搜索结果位于目录中。

标记 -文件类型:



  1. 对于每个关键字,包含其缩略图文件
  2. 对于大多数关键字,包含一个带有其文字说明或主题故事的文件,轶事
  3. 对于某些关键字,包含一个或多个html文本主题故事
  4. 另外,此文件夹包含<letter code> .txt之类的文件-俄语字母的每个字母的字母顺序关键字列表。


将图库的新版本上载到站点的过程



一个专门编写的程序(使用Delphi和Graphics32库)执行以下操作:



  1. — , ( .. ), ( Wrong.csv), _.txt, , .
  2. . , : .jpg .png ..
  3. . . — , .
  4. .


然后,图库文件夹和这些资料都将上载到服务器。



Web画廊引擎不使用DBMS。



代管



我使用Avahost托管,每月100GB的磁盘空间需要500卢布。如您所见,由于收藏大小为65GB,缩略图等等,并且主机大小为100GB,因此升级从未间断。没有足够的空间来首先卸载一个完整的新版本,然后无缝切换到该版本,因此不可避免的站点停机间隔为几个小时。我现在每月更新一次。



文件以存档的形式发送到主机。当前所有托管系统上使用的cPanel系统只能解压缩zip归档文件。建议使用最大为2.5GB的文件,否则,通过cPanel Web界面将文件上传到文件夹完成后,上传进度栏(初始颜色为蓝色)可能会变为红色而不是绿色。我不明白有什么区别(即使在这种情况下,文件似乎也可以正常上传),但是在这种情况下,我需要重新上传。对于某些文件夹,这导致必须将文件夹拆分为几个单独的zip存档。



早些时候,我试图在家里创建主机,以2000卢布的价格在Avito上购买了一台二手上网本。设置好,一切正常。过了几天-它不起作用。我重启-没有用。然后,它再次起作用,然后又没有起作用。我换了上网本(我在Avito上花了3000卢布买了另一个功能更强大的上网本),并开始使用另一个软件-同一件事。我更改了三个提供商(Seven Sky> Akado> MGTS)-一样。简而言之,供应商处的设备显然切断了家庭托管,供应商本身对此一无所知。还是其他原因。去找托管人,不要在家托管。独立托管很烂。甚至是用于网络游戏交互的原始路由器,最好还是堆在php上并托管在主机上,而不是在家中或办公室里呆着,而无缘无故地等待发生故障。



给女主人的注意(关于主人)



除了技术特性(实际上只需要一个-千兆字节的数量,其他一切都是按自己规模衡量的每个人的数量,我得出的结论是,这些特性对于Avachosts更好),还有这样一个参数-耐滥用性。“虐待”是一种抱怨。此外,例如在Artemy Lebedev的工作室中,可能会突然提出投诉的原因因此,普通主机具有参数“防弹性”,“抗投诉性”。(不要与特殊托管相混淆,即使您可以在托管帐户的网上诱骗页面上输入任何个人帐户,也可以托管任何东西,因为它们是单独的办公室,我不理解。)



营利



假设您是主要的媒体发布商,并且您决定将自己照片的重要部分(几十年来累积的)公开。例如,使用上述技术。您如何从中赚钱(通过在照片上加上水印并进行销售来进行品牌化,除外)?好吧,如果您是媒体,那么您会知道的,其余部分我会告诉您。



大多数获利计划会为您带来每天平均网站访问者10戈比的收益(包括那些曾经访问过该网站的访问者和每天访问过几次的访问者)。同样,它提供了该网站的作者和YAN(Yandex广告网络)。为了赚更多,您需要让人们参与宗教宗派或出售奇迹般的护身符,我不那样做。此类广告的聚集者很容易在Internet上找到,他们为实现目标付费(一个人购买了Kirby吸尘器或成为一个教派的成员)。而且,这很遗憾:我不这样做,但是Yandex时不时地在我的网站上驱动类似的事情。结果,人们有时仍然会以高价(通过Yandex)卖掉废话,但我得到的却少了6到10倍。



我认识的许多人默认都有一个广告块或类似内容,而Yandex广告则不可见。他们自己没有说。为什么这样-我不知道。



Yandex允许您在达到3000卢布后取款。



另外,网站所有者可以在miralinks.ru上注册并发布文章。文章的地址及其链接必须永久发布,即 确保其放置的毒性不太大。允许新文章替换历史记录的下一页中的先前文章。



您可以出售横幅广告的位置,或者根据资源的含义出售。



我在哪里可以看到这项技术的实际应用(我在做什么项目)?



我正在制作一个站点corchaosis.ru-一种用于图形的Wiki类似物。



为什么还不能推广它(我认为):



-人们只需要获得成就的手段。



即使人们去美术馆看画,他们仍然关心物质成就。我参观了特列季亚科夫画廊。我看到了天鹅湖。



如果网络资源不能使人们更接近物质成就,那么他们就不会去做。

人们自己可能会认为,他们喜欢绘画。不要紧。如果我们对人有所作为,我们必须比人“更加困难”。了解并实现更多。如果狐狸吃了鸡和老鼠,那么狐狸必须比鸡更完美。从鸡的代表性水平来看,狐狸的结果无法实现。



-人们需要互动。



WEB 1.0已死。



如果您不能提供交互性,那么没人需要您。



您没有受到监视。这是关于再次获得结果。Kobvoy不会进入丛林旅游,而是进入丛林开始自己的牧场。虽然该站点没有创建自己的牧场的工具(投资组合等),但牛仔对丛林不感兴趣。



在哪里可以买到现成的引擎



原则上,我已经描述了您需要执行的所有操作。你可以写信给我。



本地exe文件是用Delphi + Graphics32编写的,服务器端是两个.php文件。



All Articles