月度归档:2025年10月

如何在 Google Analytics 4(GA4) 查看 Referer URL ,获取来源地址

作为统计站的第一,这个 Blog 也挂了 GA 4 作为统计。如果你希望知道是谁在推荐你的 Blog,一个很好的办法是查看 HTTP 的 Referer 的 URL,来判断哪些人在哪些地方推荐了你。

不过 Google Analytics 在升级到 GA4 之后,查看 Referer  变得麻烦了不少,没办法直接通过预置的看板来查看。这篇文章就是帮你找回丢失 Referer URL。

具体操作步骤

一、登录 GA 4 ,找到你的站点;点击左侧的「探索」,进入到探索页面。在探索页面点击「空白」,来创建一个新的探索看板

    二、新的探索页面,选择维度这里,新增两个维度和一个指标

    维度:网页引荐来源网址网页位置

    指标:新用户数

    三、将网页位置和网页引荐来源网址配置到设置中的行,且顺序为网页位置在先,网页引荐来源网址在后;显示行数设置为 500;新用户数配置到设置中的值当中;设置过滤器为网页引荐来源网址包含 //

    四、配置完成后,你就可以看到类似我这样的界面了,在这个页面里,你就可以看到不同的来源给你带来了多少流量;从而进一步的去和对方沟通~

    django-storages 配置使用 S3 Provider 支持 Aliyun OSS 使用

    阿里云 OSS 提供了 S3 的兼容,所以如果你在 Django 应用当中,希望使用 OSS 作为文件存储的话,可以参考下方的说明,来使用。

    安装

    首先,你需要执行如下命令安装 django-storages 的 S3 兼容

    # uv
    uv add django-storages[s3]
    # pip
    pip install django-storages[s3]
    Code language: CSS (css)

    配置

    接下来,就是在你的项目文件夹中的 settings.py 中添加如下配置

    AWS_S3_ACCESS_KEY_ID = env("AWS_S3_ACCESS_KEY_ID") # 你在阿里云拿到的 ACCESS_KEY
    AWS_S3_SECRET_ACCESS_KEY = env("AWS_S3_SECRET_ACCESS_KEY") # 你在阿里云拿到的 Secret Key
    AWS_STORAGE_BUCKET_NAME = env("AWS_STORAGE_BUCKET_NAME")# 你在阿里云拿到的 Bucket Name
    AWS_LOCATION = env("AWS_LOCATION") # 你的文件上传路径,比如  uploads/,你的所有文件都会上传到这个路径下
    AWS_S3_REGION_NAME = env("AWS_S3_REGION_NAME") # 你的 OSS 的可用区,比如 oss-cn-beijing
    AWS_S3_CUSTOM_DOMAIN = env("AWS_S3_CUSTOM_DOMAIN") # 你自己的自定义域名,以便于后续访问的时候使用。如果不知道的话,可以填 bucket 的默认域名。
    AWS_S3_ENDPOINT_URL = env("AWS_S3_ENDPOINT_URL") #  你的阿里云 Endpoint URL,比如 https://oss-cn-beijing.aliyuncs.com
    
    AWS_S3_ADDRESSING_STYLE = "virtual" # 阿里云只支持二级域名的形式
    AWS_S3_SIGNATURE_VERSION = "s3" # 阿里云只支持 v2 版的签名逻辑
    
    # 配置默认使用 S3 Storage,即使用 OSS 的 URL
    STORAGES = {
        "default": {
            "BACKEND": "storages.backends.s3.S3Storage", # 使用 S3  Storage
        },
    }
    
    Code language: PHP (php)

    参考上方的配置,添加配置项后,保存,并重启服务器,即可在代码中进行测试。

    测试代码

    你可以执行 python manage.py shell 并执行如下代码,如果无报错,且可以在 OSS 控制台看到文件,则说明你的配置成功了。

    
    from django.core.files.storage import default_storage
    from django.core.files.base import ContentFile
    content = ContentFile(b"Hello World!")
    path = default_storage.save('test_file2.txt', content)
    print(f"文件保存路径: {path}")
    # 测试文件读取
    if default_storage.exists(path):
        with default_storage.open(path, 'r') as f:
            content = f.read()
            print(f"文件内容: {content}")
    # 测试文件URL生成
    url = default_storage.url(path)
    print(f"文件URL: {url}")
    # 测试文件删除
    default_storage.delete(path)
    print(f"文件是否存在: {default_storage.exists(path)}")
    
    Code language: PHP (php)