目标图片:https://img.alicdn.com/imgextra/O1CN01MW6Bpi1KJXbwTYrw5_!!2216508591143.jpg
发现这个图片可以直接在浏览器打开,在我的 mac 上也可以使用 wget 直接下载
╰─➤ wget https://img.alicdn.com/imgextra/O1CN01MW6Bpi1KJXbwTYrw5_\!\!2216508591143.jpg
--2024-08-08 10:23:38-- https://img.alicdn.com/imgextra/O1CN01MW6Bpi1KJXbwTYrw5_!!2216508591143.jpg
Resolving img.alicdn.com (img.alicdn.com)... 39.183.55.234, 39.183.55.233
Connecting to img.alicdn.com (img.alicdn.com)|39.183.55.234|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 64164 (63K) [image/webp]
Saving to: ‘O1CN01MW6Bpi1KJXbwTYrw5_!!2216508591143.jpg’
O1CN01MW6Bpi1KJXbwTYrw5_!!2216508591143 100%[===============================================================================>] 62.66K --.-KB/s in 0.01s
2024-08-08 10:23:38 (4.83 MB/s) - ‘O1CN01MW6Bpi1KJXbwTYrw5_!!2216508591143.jpg’ saved [64164/64164]
但是因为我的服务是部署在 aliyun 的 ack,但是我发现在 aliyun ack 访问这个图片居然就是 420 !
写了下面的测试代码
import os
import requests
from PIL import Image
def download_image(url, save_path):
response = requests.get(url)
if response.status_code == 200:
with open(save_path, 'wb') as f:
f.write(response.content)
if os.path.getsize(save_path) > 0: # 检查文件是否为空
try:
image = Image.open(save_path)
width, height = image.size
file_size = len(response.content)
print(f"图片分辨率为:{width}x{height}")
print(f"图片体积大小为:{file_size} 字节")
except Exception as e:
print(f"打开图片时出错: {e}")
else:
print("文件为空或未下载正确")
else:
print(f"请求失败,状态码: {response.status_code}")
url = 'https://img.alicdn.com/imgextra/O1CN01MW6Bpi1KJXbwTYrw5_!!2216508591143.jpg'
save_path = 'image.jpg' # 你可以修改保存的文件名和路径
download_image(url, save_path)
上面的代码,在我的 mac 上的执行效果
图片分辨率为:800x800
图片体积大小为:64164 字节
在 aliyun ack 内的 pod 的执行效果
请求失败,状态码: 420
大无语了!
被反爬了吧,其实很正常。
在您的案例中,问题出现在阿里云(Aliyun)ACK(Alibaba Cloud Container Service for Kubernetes)集群内部访问阿里云CDN(内容分发网络)域名 img.alicdn.com
时遇到了HTTP状态码420。HTTP 420状态码并不是一个标准的HTTP状态码,通常是由特定服务器或CDN服务自定义的。在阿里云CDN的上下文中,420状态码可能表示某些类型的访问控制或安全策略阻止了请求。
IP地址白名单或黑名单:
Referer检查:
用户代理(User-Agent)检查:
安全组或网络ACLs:
img.alicdn.com
的443端口(HTTPS)。CDN缓存问题:
联系阿里云支持:
调试和日志:
通过上述步骤,您应该能够诊断并解决从阿里云ACK集群访问 img.alicdn.com
时遇到的420状态码问题。
我没有设置密码。我该如何解决这件事?
我已经启动了我的centos6.5服务器上的Jupyter笔记本服务器。Jupyter跑起来就像 当我想在同一局域网中远程访问Jupyter时,请说open,我根本无法打开Jupyter页面。顺便说一下,我可以成功访问远程centos服务器。 可能的原因是什么?
以下是启动本地计算机kubernetes集群的指南:http://kubernetes.io/v1.0/docs/gett-started-guides/docker.html 我用。yaml文件创建了各种POD,一切正常,我可以使用容器IPs访问nginx和mysql(172.17.x.x范围内,使用docker0),但是当我创建服务时,服务IPs在10.0.0.x范围内,其他容器无法访问。 k
当我在tomcat服务器上运行它时,它在服务页面中返回以下错误:我不能访问WSDL和SOAP 我有这个错误: 类型异常报告 servlet[CXFServlet]的“servlet.init()”消息引发了异常 说明服务器遇到内部错误,导致它无法满足请求。
我已经安装了Jenkins和Sonarqube5.1.1(也尝试了LTS),它运行在Ubuntu服务器上,可以从外部访问。我已经安装了Jenkins SonarQube插件,一切都差不多工作了。如果我在Jenkins中将SonarQube服务器URL设置为localhost,那么一切都很好。但是到SonarQube(在Jenkins内部)的链接将指向localhost,当我从外部访问Jenkins
我无法通过集装箱中的港口连接到django。我使用的地址是:0.0.0.0.:8000,请参阅:http://joxi.ru/Dr8MeGLhkBWnLm.我正在用一个命令创建一个图像和一个容器:“docker compose up-d”。 docker-compose.yaml Dockerfile 如何解决此问题?