{"provider_name":"Hatena Blog","description":"\u30b9\u30ec\u30c3\u30c9\u3092\u4f7f\u3063\u3066\u4e26\u5217\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3002 #!/usr/bin/env ruby require 'rubygems' require 'base64' require 'cgi' require 'net/http' require 'nokogiri' require 'openssl' require 'time' Net::HTTP.version_1_2 def aws_sign(secret_access_key_id, date, bucket, path) string_to_sign = \"GET\\n\\n\\n#{date}\\n/#{bucket}#{path}\" digest = \u2026","blog_title":"so what","provider_url":"https://hatena.blog","published":"2010-08-12 00:00:00","author_name":"winebarrel","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fso-wh.at%2Fentry%2F20100812%2Fp2\" title=\" \u4e26\u5217\u51e6\u7406\u3067\u9ad8\u901f\u306bS3\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b - so what\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","height":"190","version":"1.0","blog_url":"https://so-wh.at/","author_url":"https://blog.hatena.ne.jp/winebarrel/","type":"rich","image_url":null,"categories":["RUBY"],"url":"https://so-wh.at/entry/20100812/p2","title":" \u4e26\u5217\u51e6\u7406\u3067\u9ad8\u901f\u306bS3\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b","width":"100%"}