IIS рдХреЗ рд▓рд┐рдП ImageResizer рдореЙрдбреНрдпреВрд▓


рдПрдХ рд╕рд░реНрд╡рд░ рдкрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЖрдХрд╛рд░ рджреЗрдиреЗ рдХреЗ рд╣рд╛рд▓рд┐рдпрд╛ рд▓реЗрдЦ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ IIS рдХреЗ рд▓рд┐рдП ImageResizer рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдмреЗрд╢рдХ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдореАрдХреНрд╖рд╛ рд▓рд┐рдЦрдирд╛ рдмрд╣реБрдд рдЙрдмрд╛рдК рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдХреЗрд╡рд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рд╕реАрдорд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдЕрдкрдиреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛ ImageResizer + рдмрд╛рджрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдмрдВрдбрд▓ рдкреНрд▓рдЧ-рдЗрди рдХрд╛ рдПрдХ рд╕реЗрдЯред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдирд╛рдо рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд╛рд░ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпреЗ рдЙрддреНрддрд░реА рдЕрдореЗрд░рд┐рдХрд╛ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╕рдорд╛рдЪрд╛рд░ рдкреЛрд░реНрдЯрд▓ рд╣реИрдВред рд╕рд╛рдЗрдЯ рд▓реЗрдЦ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреА рд╣реИред

рд▓реЗрдЦ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╕рдВрдкрд╛рджрдХ рд▓реЗрдЦ рдореЗрдВ рдПрдХ рд╢реАрд░реНрд╖рдХ рдЪрд┐рддреНрд░ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЫрд╡рд┐ рдЕрдореЗрдЬрд╝реЕрди рдПрд╕ 3 рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╕рдВрдкрд╛рджрдХ рдПрдХ рдЫрд╡рд┐ рдХреЛ рдЫреЛрдЯреЗ рдФрд░ рд╡рд┐рд╢рд╛рд▓ рджреЛрдиреЛрдВ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдореВрд▓ рдХреЛ рдирд╣реАрдВ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВред

рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ BrightCove рдХреЗ рдХреНрд▓рд╛рдЙрдб-рдЖрдзрд╛рд░рд┐рдд рд╡реАрдбрд┐рдпреЛ рд╕рдВрдЧреНрд░рд╣рдг рдореЗрдВ рдЕрдкрд▓реЛрдб, рд╕рдВрд╕рд╛рдзрд┐рдд рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реАрдбрд┐рдпреЛ рдХреЛ рд╕реНрдЯреЛрд░реЗрдЬ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рд╣рд░ рд╕рдВрднрд╡ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреА рдХрдИ рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдердВрдмрдиреЗрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЪреВрдВрдХрд┐ рдпрд╣ рд╕рдм рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдЪрд┐рддреНрд░ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рд╕рдореНрдорд┐рд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдзрд╛ рд▓рд┐рдВрдХ рдорд┐рд▓рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рддрд╕реНрд╡реАрд░ рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдХреБрд▓ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Amazon S3 рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, BrightCove рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рдФрд░ рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЖрдкрдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдЖрдХрд╛рд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд╛рдЗрдЯ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдХреА рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ CloudFront рдерд╛ред



рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЕрдкрдиреЗ рд▓реЗрдЦ рдореЗрдВ рдХреЙрдорд░реЗрдб рдмрд┐рдЯрдореИрдк рдиреЗ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХрд┐ рд╡рд╣ рдХреИрд╕реЗ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ (рдЖрдк рдлреЛрдЯреЛ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред рдЖрдк рдлреНрд░реЗрдо рдХреЛ рдлреИрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЦрд┐рдВрдЪреЗ рд╣реБрдП рдЪреЗрд╣рд░реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдЕрдиреБрдкрд╛рдд рдмрдирд╛рдП рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЦрд╛рд▓реА рдЬрдЧрд╣ рдХреЛ рд░рдВрдЧ рд╕реЗ рднрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЕрдиреБрдкрд╛рдд рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рдЯреНрд░рд┐рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореЙрдбреНрдпреВрд▓ рдЕрдиреНрдп рдЕрдирд╛рд╡рд╢реНрдпрдХ ryushekok рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдлрд╝рд┐рд▓реНрдЯрд░ рдФрд░ рдЕрдзрд┐рдХ рд▓рд╛рдЧреВ рдХрд░рдирд╛ред рдирддреАрдЬрддрди, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░, рд╣рдордиреЗ рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЦрд┐рдВрдЪрд╛рд╡ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░ рдПрдХ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░, рд░рдВрдЧ рдХреЗ рд╕рд╛рде рднрд░рдирд╛ред

рдорд╛рдирдХ рд▓рд┐рдкрд┐


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдЙрд╕ рдмреЙрдХреНрд╕ рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЪрд┐рддреНрд░ рдФрд░ IIS рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд┐рдд рд╣реИрдВ рдФрд░ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рд▓рд┐рдВрдХ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
/image.jpg?height=200&width=300
рдпрд╛
/image.jpg?h=200&w=300
рдорд╣рд╛рди, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдореЗрдЬрд╝реЕрди рдПрд╕ 3 рд╕реЗ рдЫрд╡рд┐рдпрд╛рдВ рдХреИрд╕реЗ рд▓реЗ рд╕рдХрддрд╛ рд╣реВрдВ?

S3 рдкрд╛рдардХ


рдпрд╣рд╛рдБ, рдХреНрд▓рд╛рдЙрдб рдмрдВрдбрд▓ рдкреНрд▓рдЧ-рдЗрди рд╕реБрдЗрдЯ рдХрд╛ рдкрд╣рд▓рд╛: S3 рд░реАрдбрд░ рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред рд╕рд░рд▓ web.config рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
/s3/bucket/folder/image.jpg?h=200&w=300

RemoteReader рдкреНрд▓рдЧрдЗрди


рдареАрдХ рд╣реИ, рдЕрдм рд╣рдо рдПрд╕ 3 рд╕реЗ рддрд╕реНрд╡реАрд░реЗрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрд╕ 3 рдПрдХ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдЪреАрдЬ рд╣реИ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рд╕рд░реНрд╡рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ RemoteReader рдкреНрд▓рдЧрдЗрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдЕрдВрддрд┐рдо рд▓рд┐рдВрдХ рдореЗрдВ рдирд┐рдореНрди рдкреНрд░рд╛рд░реВрдк рд╣реИ:
/remote.jpg.ashx?w=200&height=300&urlb64=45b45c4a2099b...&hmac=a2099ba2099b ред

рдЬрд╣рд╛рдВ Remote.jpg.ashx рд▓рд┐рдВрдХ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╣реИ, urlb64 рдкреИрд░рд╛рдореАрдЯрд░ рд░рд┐рдореЛрдЯ рдЗрдореЗрдЬ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рд▓рд┐рдВрдХ рд╣реИ рдЬреЛ HMAC SHA-256 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЕрдирдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╣реИред рдпрд╣ рд▓рд┐рдВрдХ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
RemoteReaderPlugin.Current.CreateSignedUrl("http://remote.com/image.jpg");

CloudFront


рдареАрдХ рд╣реИ, рд╣рдо рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рдореБрдХрд╛рдмрд▓рд╛ рдХрд┐рдпрд╛ред рдЕрдм рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рд╕рдм рдЬрд▓реНрджреА рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреИрд╢рд┐рдВрдЧ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рдЙрдбрдлреНрд░рдВрдЯ рдХрд╕реНрдЯрдо рдореВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕реА рдЬрд╛рджреБрдИ рдЪреАрдЬ рд╣реИред рд╣рдордиреЗ рдЕрдкрдиреЗ рдбреЛрдореЗрди рдХреА рдУрд░ рд╕рдВрдХреЗрдд рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдирдпрд╛ CloudFront рд╡рд┐рддрд░рдг рдмрдирд╛рдпрд╛ рд╣реИред рддреЛ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рд╛рд░реВрдк рд▓рд┐рдВрдХ рд╣реИрдВ:
htt://my-distribution-name.cloudfront.com/remote.jpg.ashx?w=200&height=300&urlb64=45b45c4a2099b...&hmac=a2099ba2099b
рдФрд░
htt://my-distribution-name.cloudfront.com/s3/bucket/folder/image.jpg?h=200&w=300

рд▓реЗрдХрд┐рди рдЕрдм рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ https://my-distribution-name.cloudfront.com рдкрд░ рдЦреБрд▓рдиреЗ рд▓рдЧреА, рдЬреЛ рдХреНрд▓рд╛рдЙрдбрдлреНрд░рдВрдЯ рдХреЛ рд░реЛрдХрддреА рд╣реИред рдлрд┐рд░ рд╣рдордиреЗ рдЬрд▓реНрджреА рд╕реЗ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрдВрдб рдЬреЛрдбрд╝рд╛ред рдФрд░ рд▓рд┐рдВрдХ рд╕реЗ CloudFront
htt://my-distribution-name.cloudfront.com/s3/bucket/folder/image.jpg?h=200&w=300
рдЕрдиреБрд░реЛрдз рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
htt://my-site.com/images/s3/bucket/folder/image.jpg?h=200&w=300

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдЪрд╛рдирдХ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ CloudFront рдирд┐рд░реНрджрдпрддрд╛рдкреВрд░реНрд╡рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд▓рдВрдмреА рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдХрдЯреМрддреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЯрди рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓реАрдВ рдФрд░ рддрд╕реНрд╡реАрд░реЗрдВ рдирд╣реАрдВ рдЦреЛрд▓ рд░рд╣реА рд╣реИрдВред рдпрд╣рд╛рдБ CloudFront рдкреНрд▓рдЧрдЗрди рдиреЗ рд╣рдорд╛рд░реА рдорджрдж рдХреА, рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓рд┐рдВрдХ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА:
htt://my-distribution-name.cloudfront.com/remote.jpg.ashx;w=200;height=300;urlb64=45b45c4a2099b...;hmac=a2099ba2099b
рдФрд░
htt://my-distribution-name.cloudfront.com/s3/bucket/folder/image.jpg;h=200;w=300

рдЫреЛрдЯреЗ рд▓рд┐рдВрдХ


рдпрд╣ рд╕рдм рдареАрдХ рд░рд╣рд╛, рд▓реЗрдХрд┐рди рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдФрд░ рднреА рдЖрдЧреЗ рдмрдврд╝реАред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЫрд╡рд┐ рд╕рдВрдХрд▓реНрдк рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ? рд╡реГрджреНрдзрд┐ рдХрд╛ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реАрдорд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЕрднреА рднреА рдбреАрдбреАрдУрдПрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рд╛рдкреНрдд рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рджреБрдирд┐рдпрд╛ рднрд░ рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ CloudFront рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХ рдХреА рд▓рдВрдмрд╛рдИ рд╕рд┐рд░реНрдл рднрдпрд╛рдирдХ рд╣реИред рдлрд┐рд░ рд╣рдордиреЗ рдЫреЛрдЯреЗ рд▓рд┐рдВрдХ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рд▓рд┐рдВрдХ рдЬреЗрдирд░реЗрдЯ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдлреЙрд░реНрдо рдХреЗ рд▓рдВрдмреЗ рд▓рд┐рдВрдХ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
/remote.jpg.ashx;w=200;height=300;urlb64=45b45c4a2099b...;hmac=a2099ba2099b
рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЗрд╕рдХреА рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд▓реЗрдЖрдЙрдЯ рдореЗрдВ, рд╣рдо рдкреНрд░рд╛рд░реВрдк рд▓рд┐рдВрдХ рдХреЛ рдмрд╛рд╣рд░ рдереВрдХрддреЗ рд╣реИрдВ:
htt://my-distribution-name.cloudfront.com/42

CloudFront рдореЗрдВ рд╣рдорд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд░рд╣рд╛ рд╣реИ:
htt://my-site.com/i/42

рд╣рдо рдЕрдиреБрд░реЛрдз рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХреБрдВрдЬреА 42 рджреНрд╡рд╛рд░рд╛ рдПрдХ рд▓рдВрдмреА рдХрдбрд╝реА рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рд╕рд░реНрд╡рд░ рдХреЛрдб рдореЗрдВ рд╣рдо рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХ HttpRequest рдмрдирд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ ImageResizer рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬрд╡рд╛рдм рдореЗрдВ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдХрд╛рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИред CloudFront рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдЫрд╡рд┐ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИ рдФрд░ рдЕрдЧрд▓реЗ рдХреИрд╢ рдЕрдорд╛рдиреНрдп рд╣реЛрдиреЗ рддрдХ рд╣рдореЗрдВ рдпрд╣ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдФрд░ рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢ рд▓рд┐рдВрдХ рдХреЗ рднрдпрд╛рдирдХ CloudFront рдЙрдкрд╕рд░реНрдЧ рдХреЛ рдЫрд┐рдкрд╛ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдФрд░ рдЕрдХреНрд╖рд░реЛрдВ рдХрд╛ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реЗрдЯ рд╣реИ, рдЬреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЛрдореЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рд▓рд┐рдВрдХ рд╣реИ:
htt://short.com/42

рдЙрд╕реА рд╕рдордп, рдЫрд╡рд┐ рдХреЛ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдирд┐рдХрдЯрддрдо рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ, рдмреБрд░рд╛рдИ рд╣реИрдХрд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЖрдХрд╛рд░ рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдбреАрдбреАрдУрдПрд╕ рд╣рдорд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЫреЛрдЯрд╛ рд▓рд┐рдВрдХ рд╣реИ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рд╣реА рдЖрдХрд╛рд░ рд╡рд╛рд▓реЗ рд╕рднреА рдЪрд┐рддреНрд░ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕реБрдВрджрд░ рджрд┐рдЦрддреЗ рд╣реИрдВред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд▓рдЧрдЗрди рдорд╣рд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╕рднреА рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдбреАрдмрдЧ рдореЛрдб рд╣реЛрддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рд▓реЗрдЦрдХ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреАрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдореЙрдбреНрдпреВрд▓ рдХрд╛ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

Source: https://habr.com/ru/post/In160843/


All Articles