秃头沙加 秃头沙加
关注数: 23 粉丝数: 13 发帖数: 746 关注贴吧数: 10
【新人求助】上传的照片最终会被保存在硬盘的什么地方 刚开始接触照片管理服务,对这里面的逻辑不太了解。网上的教程都是如何安装immich和如何上传照片这些,但没有介绍immich是如何组织照片的存储的。 个人上传照片后,发现在upload目录里"乱七八糟"的存放着照片文件,第一层是immich user的uuid这个可以理解,后面的层级实在是让强迫症呕血,连照片文件名都变了,这就完全没法自己管理上传的照片了,只能从immich操作。这实在是让人接受不了。 后来在网上看到《Immich的优缺点 // 喵ฅ^•ﻌ•^ฅ (ruohai.wang)》这位大神的帖子中有部分提及,摘抄如下: -------------------------------------------------------------------- 我使用immich的一个星期里,这个bug碰到了两次。具体表现是,上传以后的照片,卡在upload目录无法归档。这个bug我觉得非常的致命。 这里说一下immich处理照片整个流程: 上传的照片全部用uuid重命名,保存到upload目录。这个目录可以理解为临时目录,所有上传的照片都临时放这里等待处理。 然后会跑extract metadata任务开始读取upload目录下照片的元数据。 读取完以后,根据照片拍摄时间把文件归档并还原文件名 上传的照片卡在upload目录的意思,就是extract metadata任务出了问题。我碰到的两次bug,一次是extract metadata任务无法运行,一直是pause状态,点击resume/start以后立刻就会变成pause,upload目录留了1800张照片无法处理。第二次bug是extract metadata任务能正常跑,但upload目录里它就是留了11张照片不处理。 如果你有很强的debug能力,那可以自己想办法处理。如果有足够的耐心,那可以上immich的github项目主页去提issue,然后等维护人员解答。 如果以上两个方案都无法接受,只想立刻解决这个bug,比如重新部署immich然后把卡在upload目录的照片拿出来重新导入一遍,那最致命的问题来了:留在upload目录的照片,文件名是被重命名过的,不仅丢失了原文件名,而且uuid的格式毫无辨识度。重新导入以后,甚至连归档时间都会被重置,也就是识别成此时此刻,然后归档到当天。 这种bug碰到一次就想死了,碰到两次,拜拜了immich。 ----------------------------------------------------------------------------------- 大神这里是在说,upload其实是个临时目录,最终照片文件还是会被还原为原来的文件名,但大神也没说还原了以后的照片存在哪里,而且大神用了“归档”这个词,似乎也不太准确,因为immich里的“归档”对应的是archive这个操作吧,首先这是个类似于隐藏照片的功能,更像是个删除,其次archive也不是自动执行的,是手动的吧。。。 如果先抛开上面这个问题,那我上传照片并且后台job都完成后的状态就是:upload和thumbs里有内容,library里面是空的,那按照大神的说法,我这个也是extract metdata任务出了问题? 所以想请问一下大家,自己手动上传的照片,最终在immich的存储里,文件结构是怎样的?library文件夹里为什么会是空的?
【求教】SSD之于群晖 各位大佬,小弟刚入群晖两个月,查阅网上关于固态硬盘对群晖的作用的文章,知识点比较零散,想在这里请教下各位对以下问题有何见解:) 需求:家用,储存视频和照片,内外网看视频,bt离线下载。尽量保护硬盘寿命。平时不玩PT和虚拟机,但用得到docker,webdav等套件。 问题:将SSD作为第一盘位的群晖主盘安装套件运行起来比较快,还是将HDD作为第一盘位的群晖主盘安装套件、并为其添加一块SSD做只读缓存运行起来比较快? 背景:小弟手里有一块比较老的128G固态,sata接口的塑料片断在了sata线里,还有一块容量大些的机械硬盘。最初组建群晖时,将SSD作为主盘,上面分了两个存储空间,一个10G专门安装套件,一个一百零几G给了download station做下载缓存。HDD只作为仓库盘放数据。稳定运行了两个月,前几天在download station里挂了两个下载任务,一个50G一个60G,总和超过了作为下载缓存卷的容量。在缓存卷占用容量达到92%的时候,SSD的这两个存储空间都提示已损毁了。。。当然现在也不知道是因为下载缓存卷的容量不够了还是因为sata接口接触不良导致的损毁,反正SMART检查没出问题,也没有坏道。现在考虑重新构建下群晖系统,就有了上面的问题。是维持原来的方案还是采用第二种办法,重新把套件安装在HDD上,然后买个小容量的SSD设置为系统的SSD只读缓存(系统的SSD缓存建议显示我的HDD只需要444kb就够了。。。当然因为套件不在这个盘上),然后把原来的128GSSD整个设置为download station的下载缓存卷?
神周君,还是请你再指教下重写判定的问题吧 今天我按着你和虫妹大人的说法,尝试了一下,在下愚钝,没有完全领会您二位的意思。只能一通胡写,现在简单说下: 针对延迟锦囊的问题,比较好解决,我捕获cardEffected事件,以乐不思蜀为例 if effect.card:isKindOf("Indulgence") then --乐不思蜀 local pandingCard = sgs.Sanguosha:getCard(room:drawCard()) if pandingCard:getSuit() == sgs.Card_Heart then player:skip(sgs.Player_Play) return true end end 没什么问题,重写了判定就过了。但头疼的还是技能判定 第一种情况是张角的雷击,因为张角君用的是技能卡,所以仍用上述方式,倒也勉强实现了 if effect.card:getSkillName() == "leiji" then --张角的雷击 local pandingCard = sgs.Sanguosha:getCard(room:drawCard()) if pandingCard:getSuit() ~= sgs.Card_Spade then local damage = sgs.DamageStruct() damage.card = nil damage.damage = 2 damage.from = effect.from damage.to = player damage.nature = sgs.DamageStruct_Thunder room:damage(damage) return true end end 但第二种情况我就没招了,就是不用技能卡的,比如八卦阵的判定。即使换个简单的,我给自己加了个刚烈技能,触发刚烈时,也是没法拿cardeffected捕获,这属于我自己得先选择发布发动,还是触发技。我就想这用StartJudge来捕获了,如下 if event == sgs.StartJudge then local judge = data:toJudge() if judge.reason == "ganglie" then local pandingCard = sgs.Sanguosha:getCard(room:drawCard()) if pandingCard:getSuit() == sgs.Card_Heart then .... --我就不粘处理的代码了。 end room:setTag("SkipGameRule", sgs.QVariant(true)) room:getThread():trigger(sgs.FinishJudge, room, player, data) return true end end 这个我已然完全不知道我写的是什么了,虫妹大人的教程我在她发帖时就看了,我还在前面回复来着。说实话,我不知道SkipGameRule和getThread():trigger(...)是干什么用的。所以就直接拿过来用了。但这段代码是不行的,运行时会走到处理的代码,然后就闪退了。如果把return true改成false的话,可以正常走完,但判定还是跳不过去。只能来跪求指教了。
【踏青lua】CreateFilterSkill不能用在acquireSkill里么? 小弟欲做这样一个技能,和一个角色拼点,若赢则手牌都视为杀。代码如下 nupen_card = sgs.CreateSkillCard{ name = "nupenpindian_effect", will_throw = false, filter = function(self, targets, to_select) if (#targets > 0) then return false end return (not to_select:isKongcheng()) and (not to_select:hasSkill("diy_nupen")) end, on_use = function(self,room,source,targets) room:playSkillEffect("diy_nupen", 1) source:pindian(targets[1], "nupenpindian", self) room:setPlayerFlag(source, "nupen_used") return end } Nupen_ViewAsSkill = sgs.CreateViewAsSkill{ name = "diy_nupen", n = 1, view_filter = function(self, selected, to_select) return not to_select:isEquipped() end, view_as = function(self, cards) if #cards == 1 then local acard = nupen_card:clone() acard:addSubcard(cards[1]) acard:setSkillName(self:objectName()) return acard end end, enabled_at_play = function() return not sgs.Self:hasFlag("nupen_used") end, enabled_at_response = function(self, player, pattern) return false end } Nupen_FilterSkill = sgs.CreateFilterSkill{ name = "nupen_buff", n = 1, view_filter = function(self, to_select) return not to_select:isEquipped() end, view_as = function(self, card) local acard = sgs.Sanguosha:cloneCard("slash", card:getSuit(), card:getNumber()) acard:addSubcard(card) acard:setSkillName(self:objectName()) return acard end, } Nupen_TriggerSkill = sgs.CreateTriggerSkill{ name = "#nupen_trigger", frequency = sgs.Skill_Frequent, events = {sgs.Pindian, sgs.PhaseChange}, on_trigger = function(self, event, player, data) local room = player:getRoom() if event == sgs.Pindian then local pdData = data:toPindian() local fromNum = pdData.from_card:getNumber() local toNum = pdData.to_card:getNumber() if fromNum > toNum then room:playSkillEffect("diy_nupen", 2) room:acquireSkill(player, "nupen_buff") else room:playSkillEffect("diy_nupen", 3) room:setEmotion(player, "bad") for _,acard in sgs.qlist(player:getHandcards()) do if acard:inherits("Slash") then room:throwCard(acard) end end end return false end if event == sgs.PhaseChange and player:getPhase() == sgs.Player_Finish then if player:hasSkill("nupen_buff") then room:detachSkillFromPlayer(player, "nupen_buff") end return false end end } luaxxx:addSkill(Nupen_ViewAsSkill) lualajiche:addSkill(Nupen_FilterSkill) luaxxx:addSkill(Nupen_TriggerSkill) 发现程序可以走到拼点成功的地方,游戏中nupen_buff这个技能也添加了,但是没有效果。为了验证我的filterskill写对没有,我就不把技能填进lajiche,直接luaxxx:addSkill(Nupen_FilterSkill)发现没有问题。所有手牌都视为杀了。但为什么用acquireskill获取了缺不能使用呢?
关于圣吧的问题,管理员同志请进来看一下 管理员同志,群众都会相信您的眼睛,关于圣吧的事,您应该亲眼见过,多少天来,有几个居心叵测的人在吧里利用有关《圣斗士》里的一些敏感字眼与内容,挑拨滋事,虽然他们并没有脏话连篇,但每一个有良知的圣斗士爱好者都能看出其故意挑衅的意图,极大地影响了圣吧原本的良好秩序,有许多吧友出于好奇等因素,觉得好玩,跟着起哄,更是中了这一小撮人的奸计,最终导致了圣吧纷乱的局面。圣吧吧主天狼星之爱一直对此事非常重视,俗话说堵不如疏,天狼星之爱从好言相劝到口头警告,一直希望众吧友能明辨是非,一直希望这一小撮人能自知好歹,不要在这扰乱秩序。但是,这些人动机本就不纯,自然继续利用《圣斗士》中的敏感话题变本加厉、煽风点火,天狼星之爱亦是忍无可忍,开始封号。这也正中他们下怀,这些人利用百度贴吧的功能不断申请新号,一方面引诱逼迫天狼星之爱封号,一方面一人分饰N角,自问自答、搬弄是非,装成弱势群体,以此引来许多吧友,以显出自己的“无辜”和吧主的“专横”。可惜其中有些吧友,不能认清其本质,亦随其对天狼星之爱矛头相向。终于将天狼星之爱逼入进退两难之境地。作为一位有着极强责任心的吧主,她的信任度受到很大打击,她为那些不能理解她而对她言加指责的各位吧友感到心痛,而作为一位有着很强自尊心的女性,天狼星之爱也作出了一些不太恰当的举动,许多跟风好玩的吧友因此成了这起事件的最大受害者,使他们现在走投无路,只好到这里投诉,这就造成了现在的情形:那些心怀不轨分子他们根本不用来投诉(他们审请ID就是用来捣乱的),他们可以这样说:“你看,来投诉的都是圣吧里的人,这就说明吧主工作失误。”而被封号的吧友,只能认为吧主独断专行,工作失误,从而为了自己的权利和圣吧,来此讨回公道。管理员同志,现在天狼星之爱被封,谁最高兴您应该清楚,既不是来投诉的和其他热爱圣斗士的各位吧友,更不会是天狼星之爱本人,而是那些小人得志的无业青年!!事情走到这一步,我作为一个热爱圣斗士的北航学子,不像那些无业青年,可以没日没夜无休止的捣乱,但看到我所钟爱的圣斗士吧被这些人无耻的践踏,而吧主挺身抗争却遭奸人算计,我感到十分悲愤!希望管理员同志能看到我的肺腑之言,对症下药,不让好人蒙冤、坏人逍遥法外!!
1 下一页