flickrに貯めていた直リンク用画像をWordPressサーバに移す際に画像ファイル名と直リンクを一致させるために行った作業メモ

経緯
2019年3月からflickrに1000ファイル以上アップしている人は有料(月額700円くらい?)になりました。。 チックしょーッ(小梅) というのも、、画像を多く使用している私のブログでは、 画像をWordPressサーバにアップロードしているのでなく、 flickrにアップロードした画像を直リンクさせることで表示させる運用をとっていたのです。 この度、flickrが月額700円になったことでこの運用のメリットがなくなりました。 (WordPressサーバ容量を増やす方に課金した方が安いから) 私のflickr利用の見通しが甘かった・・・ッ! ということでflickrにためていた画像をWordPressサーバに移行しました。その際、名寄せ的なSE作業が必要になったので以下にその手順をメモしておきます解決しなければならない課題
直リンクのパス(ファイル名)とflickrからダウンロードした画像ファイル名は一致していると思っていたら、、①ブログ記事上のflickr画像への直リンク: 31503987834_ec80127a77.jpg ↓同一ファイルなのになんか違う!! ②flickrから退避(ダウンロード)した画像ファイル: 05_31503987834_o.jpgflickrからダウンロードしたらちょっと名前が変わってる! これじゃ画像をそのままWordpressサーバに移してもうまくリンクされない!! ということで以下のようなリネームを一括でかけることにしました。
①ブログ記事上の直リンク: src=”https://farm1.staticflickr.com/***/31503987834_ec80127a77.jpg” ↓リネーム src=”http://ブログURL/wp-content/uploads/flickr/31503987834.jpg”
②flickrから退避(ダウンロード)した画像ファイル: 05_31503987834_o.jpg ↓リネーム 31503987834.jpg一括リネームの手順は以下。
①ブログ記事上の直リンクのリネーム
サイトからエクスポートした記事情報(*.xml)をsakuraエディタで開き、以下の一括置換を行う。 (DBからのエクスポートした*.sqlファイルに対して実施しても良い)※正規表現ON 置換前※(.[\w]+)は拡張子の部分です[0-9]\.[\w]+\.[\w]+)(\/[0-9]{1,4}\/)([0-9]{11})_([\w]+)(\.[\w]+) 置換後 http://ブログURL\/wp-content\/uploads\/任意フォルダ\/$3$5 例:http://mangaman.site\/wp-content\/uploads\/flickr640\/$3$5 https://farm(
②flickrから退避(ダウンロード)した画像ファイルのリネーム
上記のsakuraエディタでの一括置換条件をそのまま使います。 画像ファイル群をローカルに保存し、それらに対しpowershellで以下のコマンドを実行。(コマンドプロンプトには一括置換コマンドが無かった)dir | rename-item -newname { $_.name -replace ‘(^|.*_)([0-9]{11})_(.*)(\.[\w]+)’,’$2$4′ }※ 置換前: (^|.)([0-9]{11})(.)(.[\w]+) 置換後: $2$4 ※(.[\w]+)は拡張子の部分です 【参考】 power shellでファイル名置換

Windows PowerShellを使って複雑なパターンのファイル名変更を行う
多数のファイルの名前をまとめて変更したい場合、CUIのツールを使うと素早く作業できる。だがコマンドプロンプトのrenコマンドでは、名前の長さが変わるような変更が難しいなど、制約が多い。PowerShellなら、Rename-Itemコマンドレットと正規表現機能を組み合わせて柔軟なファイル名変更ができる。
dir | rename-item -newname { $_.name -replace ‘(.)’,’\u$1′ }※ 置換前: (.) 置換後: \u$1 以上です。 その他メモ: :<a title=”はねバド” href=”https://www.flickr.com/photos/140453959@N08/30369412117″><img class=”alignnone” src=”http://mangaman.site/wp-content/uploads/flickr640/30369412117.jpg” alt=”はねバド” width=”377″ height=”500″ /></a> ↓ 置換前: (<a title).(flickr.com/photos/).(“>) <img class=”alignnone” src=”http://mangaman.site/wp-content/uploads/flickr640/30369412117.jpg” alt=”はねバド” width=”377″ height=”500″ /> ※通常挿入の画像 <img class=”size-full wp-image-5515″ src=”http://mangaman.site/wp-content/uploads/2019/03/img_0003.jpg” width=”593″ height=”647″ />]]>
コメント