กฎที่เก็บ HTTP

รายงานปัญหา ดูแหล่งที่มา ตอนกลางคืน · 7.4 ที่ใช้เวลาเพียง 2 นาที 7.3 · 7.2 · 7.1 · 7.0 · 6.5

โหลดฟังก์ชันต่อไปนี้ได้จาก @bazel_tools//tools/build_defs/repo:http.bzl

http_archive

http_archive(name, add_prefix, auth_patterns, build_file, build_file_content, canonical_id,
             integrity, netrc, patch_args, patch_cmds, patch_cmds_win, patch_tool, patches,
             remote_patch_strip, remote_patches, sha256, strip_prefix, type, url, urls,
             workspace_file, workspace_file_content)

ดาวน์โหลดที่เก็บ Bazel เป็นไฟล์ที่เก็บถาวรที่บีบอัด ขยายการบีบอัด และทำให้เป้าหมายพร้อมสำหรับการเชื่อมโยง

โดยรองรับนามสกุลไฟล์ "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", "tar.zst", "tzst", tar.bz2, "ar" หรือ "deb"

ตัวอย่าง: สมมติว่าที่เก็บปัจจุบันมีซอร์สโค้ดสำหรับโปรแกรมแชท รูทที่ไดเรกทอรี ~/chat-app โดยต้องอาศัยไลบรารี SSL ซึ่งมีอยู่จาก http://example.com/openssl.zip ไฟล์ .zip นี้ มีโครงสร้างไดเรกทอรีต่อไปนี้

  WORKSPACE
  src/
    openssl.cc
    openssl.h

ในที่เก็บในเครื่อง ผู้ใช้สร้างไฟล์ openssl.BUILD ที่ มีคำจำกัดความเป้าหมายต่อไปนี้

  cc_library(
      name = "openssl-lib",
      srcs = ["src/openssl.cc"],
      hdrs = ["src/openssl.h"],
  )

เป้าหมายในที่เก็บ ~/chat-app อาจขึ้นอยู่กับเป้าหมายนี้หาก มีการเพิ่มบรรทัดต่อไปนี้ใน ~/chat-app/WORKSPACE:

  load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

  http_archive(
      name = "my_ssl",
      url = "http://example.com/openssl.zip",
      sha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
      build_file = "@//:openssl.BUILD",
  )

จากนั้นเป้าหมายจะระบุ @my_ssl//:openssl-lib เป็นการอ้างอิง

Attributes

name ชื่อ ต้องระบุ

ชื่อที่ไม่ซ้ำกันสำหรับที่เก็บนี้

add_prefix String; ไม่บังคับ

ไดเรกทอรีปลายทางที่สัมพันธ์กับไดเรกทอรีที่เก็บ ระบบจะคลายการแพคข้อมูลที่เก็บถาวรลงในไดเรกทอรีนี้หลังจากใช้ "strip_prefix" (หากมี) ไปยังเส้นทางไฟล์ภายในที่เก็บถาวร เช่น ระบบจะแตกไฟล์ `foo-1.2.3/src/foo.h` เป็น `bar/src/foo.h` หาก `add_prefix = "bar"` และ `strip_prefix = "foo-1.2.3"`

auth_patterns พจนานุกรม: สตริง -> String; ไม่บังคับ

Dict ที่ไม่บังคับซึ่งจับคู่ชื่อโฮสต์กับรูปแบบการให้สิทธิ์ที่กำหนดเอง หากมีชื่อโฮสต์ของ URL ในคำสั่งนี้ ระบบจะใช้ค่านี้เป็นรูปแบบเมื่อ สร้างส่วนหัวการให้สิทธิ์สำหรับคำขอ HTTP ซึ่งจะช่วยให้ใช้รูปแบบการให้สิทธิ์ที่กำหนดเองได้ ซึ่งใช้ในผู้ให้บริการพื้นที่เก็บข้อมูลระบบคลาวด์ทั่วไปจำนวนมาก รูปแบบนี้รองรับโทเค็น 2 รายการ ได้แก่ <login> และ <password> ซึ่งแทนที่ด้วยค่าที่เทียบเท่า ในไฟล์ netrc สำหรับชื่อโฮสต์เดียวกัน หลังจากจัดรูปแบบแล้ว ระบบจะตั้งค่าผลลัพธ์เป็นค่าสำหรับฟิลด์ Authorization ของคำขอ HTTP ตัวอย่างแอตทริบิวต์และ netrc สำหรับการดาวน์โหลด HTTP ไปยัง API ที่เปิดใช้ oauth2 โดยใช้โทเค็นของผู้ถือครองมีดังนี้

auth_patterns = {
    "storage.cloudprovider.com": "Bearer <password>"
}
netrc:
machine storage.cloudprovider.com
        password RANDOM-TOKEN
คําขอ HTTP สุดท้ายจะมีส่วนหัวดังต่อไปนี้
Authorization: Bearer RANDOM-TOKEN

build_file ป้ายกํากับ (ไม่บังคับ)

ไฟล์ที่จะใช้เป็นไฟล์ BUILD สำหรับที่เก็บนี้ แอตทริบิวต์นี้เป็นป้ายกำกับแบบสัมบูรณ์ (ใช้ "@//" สำหรับที่เก็บหลัก) ไฟล์ไม่จำเป็นต้องมีชื่อว่า BUILD แต่อาจเป็นชื่ออื่นก็ได้ (เช่น BUILD.new-repo-name อาจเป็นชื่อที่เหมาะในการแยกความแตกต่างจากไฟล์ BUILD จริงของที่เก็บ คุณสามารถระบุ build_file หรือ build_file_content อย่างใดอย่างหนึ่งเท่านั้น

build_file_content สตริง ไม่บังคับ

เนื้อหาของไฟล์ BUILD สำหรับที่เก็บนี้ คุณสามารถระบุ build_file หรือ build_file_content อย่างใดอย่างหนึ่งเท่านั้น

canonical_id สตริง ไม่บังคับ

รหัส Canonical ของที่เก็บถาวรที่ดาวน์โหลด หากระบุไว้และไม่ว่างเปล่า Bazel จะไม่นำที่เก็บถาวรจากแคช เว้นแต่ว่ามีการเพิ่มรหัสดังกล่าวลงในแคชโดยคำขอที่มีรหัส Canonical เดียวกัน

integrity สตริง ไม่บังคับ

Checksum ที่คาดไว้ในรูปแบบความสมบูรณ์ของเนื้อหาย่อยของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับ checksum ของไฟล์ที่ดาวน์โหลด _การละเว้นการตรวจสอบผลรวมเป็นความเสี่ยงด้านความปลอดภัย เนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง_ ในกรณีที่ดีที่สุด การละเว้นช่องนี้จะทำให้บิลด์ของคุณไม่สมบูรณ์ คุณเลือกได้ว่าจะให้การพัฒนา ง่ายกว่า แต่ควรตั้งค่าแอตทริบิวต์นี้หรือ "sha256" ก่อนจัดส่ง

netrc สตริง ไม่บังคับ

ตำแหน่งของไฟล์ .netrc ที่จะใช้สำหรับการตรวจสอบสิทธิ์

patch_args รายการสตริง ไม่บังคับ

อาร์กิวเมนต์ที่ส่งไปยังเครื่องมือแพตช์ ค่าเริ่มต้นจะเป็น -p0 แต่โดยปกติแล้วจะต้องใช้ -p1 สำหรับแพตช์ที่สร้างโดย git หากระบุอาร์กิวเมนต์ -p หลายรายการ อาร์กิวเมนต์สุดท้ายจะมีผล หากระบุอาร์กิวเมนต์อื่นที่ไม่ใช่ -p ไว้ Bazel จะกลับไปใช้เครื่องมือบรรทัดคำสั่งแพตช์แทนการใช้งานแพตช์ของ Bazel เมื่อใช้เครื่องมือบรรทัดคำสั่งการปะติดปะต่อสำรองและไม่ระบุแอตทริบิวต์ patch_tool ระบบจะใช้ "patch" การดำเนินการนี้จะมีผลกับไฟล์แพตช์ในแอตทริบิวต์ "patches" เท่านั้น

patch_cmds รายการสตริง (ไม่บังคับ)

ลำดับคำสั่ง Bash ที่จะใช้ใน Linux/Macos หลังจากติดตั้งแพตช์แล้ว

patch_cmds_win รายการสตริง (ไม่บังคับ)

ลำดับคำสั่ง PowerShell ที่จะใช้ใน Windows หลังจากติดตั้งแพตช์แล้ว หากไม่ได้ตั้งค่าแอตทริบิวต์นี้ ระบบจะเรียกใช้ patch_cmds ใน Windows ซึ่งต้องมีไฟล์ Bash อยู่

patch_tool สตริง ไม่บังคับ

โปรแกรมแพตช์(1) ที่จะใช้ หากระบุไว้ Bazel จะใช้เครื่องมือแพตช์ที่ระบุแทนการติดตั้งใช้งานแพตช์ของ Bazel เนทีฟ

patches รายการป้ายกำกับ (ไม่บังคับ)

รายการไฟล์ที่จะใช้เป็นแพตช์หลังจากแตกไฟล์ที่เก็บถาวร โดยค่าเริ่มต้น จะใช้การติดตั้งใช้งานการปะติดปะต่อแบบดั้งเดิมของ Bazel ซึ่งไม่รองรับการจับคู่แบบไม่เจาะจงและแพตช์แบบไบนารี แต่ Bazel จะเปลี่ยนไปใช้เครื่องมือบรรทัดคำสั่งการปะติดปะต่อหากระบุแอตทริบิวต์ `patch_tool` หรือมีอาร์กิวเมนต์อื่นนอกเหนือจาก `-p` ในแอตทริบิวต์ `patch_args`

remote_patch_strip จํานวนเต็ม (ไม่บังคับ)

จํานวนเครื่องหมายทับที่อยู่หน้าชื่อไฟล์ที่จะนําออกจากชื่อไฟล์ในแพตช์ระยะไกล

remote_patches Dictionary: String -> String ไม่บังคับ

แมป URL ของไฟล์แพตช์กับค่าความสมบูรณ์ ระบบจะใช้ค่าดังกล่าวหลังจากแยกที่เก็บถาวรและก่อนใช้ไฟล์แพตช์จากแอตทริบิวต์ "patches" โดยใช้การติดตั้งใช้งานแพตช์ Bazel เนทีฟ คุณระบุหมายเลขแถบแพตช์ได้ด้วย "remote_patch_strip"

sha256 String; ไม่บังคับ

SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับ SHA-256 ของไฟล์ที่ดาวน์โหลด _การละเว้น SHA-256 เป็นความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง_ ในกรณีที่ดีที่สุด การละเว้นช่องนี้จะทำให้บิลด์ของคุณไม่สมบูรณ์ คุณเลือกได้ว่าจะให้การพัฒนา ง่ายกว่า แต่ควรตั้งค่าแอตทริบิวต์นี้หรือ "ความสมบูรณ์" ก่อนจัดส่ง

strip_prefix สตริง ไม่บังคับ

คำนำหน้าไดเรกทอรีที่จะตัดออกจากไฟล์ที่แยก ที่เก็บถาวรจำนวนมากมีไดเรกทอรีระดับบนสุดที่มีไฟล์ที่มีประโยชน์ทั้งหมดในที่เก็บถาวร แทนที่จะต้องระบุคำนำหน้านี้ซ้ำแล้วซ้ำอีก ใน "build_file" ฟิลด์นี้สามารถใช้เพื่อตัดออกจาก ไฟล์ที่แยกแล้ว ตัวอย่างเช่น สมมติว่าคุณใช้ "foo-lib-latest.zip" ซึ่งมีพารามิเตอร์ ไดเรกทอรี "foo-lib-1.2.3/" ใต้ที่มีไฟล์ "WORKSPACE" และ ไดเรกทอรี `src/`, `lib/` และ `test/` ที่มีโค้ดจริงที่คุณ ต้องการสร้าง ระบุ `strip_prefix = "foo-lib-1.2.3"` เพื่อใช้ไดเรกทอรี `foo-lib-1.2.3` เป็นไดเรกทอรีระดับบนสุด โปรดทราบว่าหากมีไฟล์นอกไดเรกทอรีนี้ ไฟล์จะ ถูกทิ้งและไม่สามารถเข้าถึงได้ (เช่น ไฟล์ใบอนุญาตระดับบนสุด) ซึ่งรวมถึงไฟล์/ไดเรกทอรีที่ขึ้นต้นด้วยคำนำหน้าแต่ไม่อยู่ในไดเรกทอรี (เช่น `foo-lib-1.2.3.release-notes`). หากคำนำหน้าที่ระบุไม่ จับคู่ไดเรกทอรีในที่เก็บถาวร Bazel จะแสดงผลข้อผิดพลาด

type String; ไม่บังคับ

ประเภทที่เก็บถาวรของไฟล์ที่ดาวน์โหลด โดยค่าเริ่มต้น ประเภทที่เก็บถาวรจะพิจารณาจากนามสกุลไฟล์ของ URL หากไฟล์ไม่มีนามสกุล คุณสามารถระบุอย่างชัดแจ้งได้ดังนี้ `"zip"`, `"jar"`, `"war"`, `"aar"`, `"tar"`, `"tar.gz"`, `"tgz"`, `"tar.xz"`, `"txz"`, `"tar.zst"`, `"tzst"`, `tar.bz2`, `"ar"`, หรือ `"deb"`

url String; ไม่บังคับ

URL ของไฟล์ที่จะทําให้ Bazel พร้อมใช้งาน ต้องเป็นไฟล์หรือ URL แบบ http หรือ https ติดตามการเปลี่ยนเส้นทาง ไม่รองรับการตรวจสอบสิทธิ์ คุณเพิ่มความยืดหยุ่นได้โดยใช้พารามิเตอร์ urls ที่อนุญาตให้ระบุ URL อื่นที่จะดึงข้อมูล

urls รายการสตริง ไม่บังคับ

รายการ URL ไปยังไฟล์ที่จะทำให้ Bazel ใช้งานได้ แต่ละรายการต้องเป็น URL ของไฟล์, http หรือ https ติดตามการเปลี่ยนเส้นทาง ไม่รองรับการตรวจสอบสิทธิ์ ระบบจะลองใช้ URL ตามลำดับจนกว่าจะพบ URL ที่ใช้งานได้ คุณจึงควรระบุมิเรอร์ในเครื่องก่อน หากการดาวน์โหลดทั้งหมดไม่สำเร็จ กฎก็จะไม่สำเร็จ

workspace_file ป้ายกํากับ (ไม่บังคับ)

ไฟล์ที่จะใช้เป็นไฟล์ `WORKSPACE` สําหรับที่เก็บข้อมูลนี้ ต้องระบุ "workspace_file" หรือ "workspace_file_content" หรือจะระบุทั้ง 2 รายการไม่ได้

workspace_file_content สตริง ไม่บังคับ

เนื้อหาสำหรับไฟล์ WORKSPACE ของที่เก็บข้อมูลนี้ คุณสามารถระบุ "workspace_file" หรือ "workspace_file_content" อย่างใดอย่างหนึ่ง หรือจะระบุทั้ง 2 อย่างก็ได้

http_file

http_file(name, auth_patterns, canonical_id, downloaded_file_path, executable, integrity, netrc,
          sha256, url, urls)

ดาวน์โหลดไฟล์จาก URL และทำให้ไฟล์พร้อมใช้งานเป็นกลุ่มไฟล์

ตัวอย่าง: สมมติว่าคุณต้องมีแพ็กเกจ Debian สำหรับกฎที่กำหนดเอง แพ็กเกจนี้ มีให้บริการใน http://example.com/package.deb จากนั้นคุณสามารถเพิ่มลงในไฟล์ WORKSPACE ได้โดยทำดังนี้

  load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")

  http_file(
      name = "my_deb",
      url = "http://example.com/package.deb",
      sha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  )

เป้าหมายจะระบุ @my_deb//file เป็นส่วนที่ต้องพึ่งพาไฟล์นี้

Attributes

name ชื่อ ต้องระบุ

ชื่อที่ไม่ซ้ำกันสำหรับที่เก็บนี้

auth_patterns Dictionary: String -> String ไม่บังคับ

Dict ที่ไม่บังคับซึ่งจับคู่ชื่อโฮสต์กับรูปแบบการให้สิทธิ์ที่กำหนดเอง หากมีชื่อโฮสต์ของ URL ในคำสั่งนี้ ระบบจะใช้ค่านี้เป็นรูปแบบเมื่อ สร้างส่วนหัวการให้สิทธิ์สำหรับคำขอ HTTP ซึ่งทำให้สามารถใช้ตัวเลือกที่กำหนดเอง แผนการให้สิทธิ์ซึ่งใช้ในผู้ให้บริการพื้นที่เก็บข้อมูลระบบคลาวด์ทั่วไปหลายราย รูปแบบนี้รองรับโทเค็น 2 รายการ ได้แก่ <login> และ <password> ซึ่งแทนที่ด้วยค่าที่เทียบเท่า ในไฟล์ netrc สำหรับชื่อโฮสต์เดียวกัน หลังจากจัดรูปแบบแล้ว ระบบจะตั้งค่าผลลัพธ์เป็นค่าสำหรับฟิลด์ Authorization ของคำขอ HTTP ตัวอย่างแอตทริบิวต์และ netrc สำหรับการดาวน์โหลด http ไปยัง API ที่เปิดใช้ oauth2 โดยใช้โทเค็นสำหรับผู้ถือ

auth_patterns = {
    "storage.cloudprovider.com": "Bearer <password>"
}
netrc:
machine storage.cloudprovider.com
        password RANDOM-TOKEN
คำขอ HTTP สุดท้ายจะมีส่วนหัวดังต่อไปนี้
Authorization: Bearer RANDOM-TOKEN

canonical_id String; ไม่บังคับ

รหัส Canonical ของที่เก็บถาวรที่ดาวน์โหลด หากระบุไว้และไม่ว่างเปล่า Bazel จะไม่นำที่เก็บถาวรจากแคช เว้นแต่ว่ามีการเพิ่มรหัสดังกล่าวลงในแคชโดยคำขอที่มีรหัส Canonical เดียวกัน

downloaded_file_path สตริง ไม่บังคับ

เส้นทางที่กำหนดให้กับไฟล์ที่ดาวน์โหลด

executable บูลีน ไม่บังคับ

ไฟล์ที่ดาวน์โหลดมาควรเป็นไฟล์ปฏิบัติการหรือไม่

integrity สตริง ไม่บังคับ

Checksum ที่คาดไว้ในรูปแบบความสมบูรณ์ของเนื้อหาย่อยของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับ checksum ของไฟล์ที่ดาวน์โหลด _การละเว้นการตรวจสอบผลรวมเป็นความเสี่ยงด้านความปลอดภัย เนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง_ ในกรณีที่ดีที่สุด การละเว้นช่องนี้จะทำให้บิลด์ของคุณไม่สมบูรณ์ คุณเลือกได้ว่าจะให้การพัฒนา ง่ายกว่า แต่ควรตั้งค่าแอตทริบิวต์นี้หรือ "sha256" ก่อนจัดส่ง

netrc สตริง ไม่บังคับ

ตำแหน่งของไฟล์ .netrc ที่จะใช้สำหรับการตรวจสอบสิทธิ์

sha256 String; ไม่บังคับ

SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับ SHA-256 ของไฟล์ที่ดาวน์โหลด _มีความเสี่ยงด้านความปลอดภัย ที่จะละเว้น SHA-256 เพราะไฟล์ระยะไกลสามารถเปลี่ยนแปลงได้_ จะทำให้บิลด์ของคุณไม่ใช่สุญญากาศ การตั้งค่านี้ไม่บังคับ แต่จะช่วยให้การพัฒนาง่ายขึ้นและควรตั้งค่าก่อนการเผยแพร่

url String; ไม่บังคับ

URL ของไฟล์ที่จะทําให้ Bazel พร้อมใช้งาน ต้องเป็นไฟล์หรือ URL แบบ http หรือ https ติดตามการเปลี่ยนเส้นทาง ไม่รองรับการตรวจสอบสิทธิ์ คุณเพิ่มความยืดหยุ่นได้โดยใช้พารามิเตอร์ urls ที่อนุญาตให้ระบุ URL อื่นที่จะดึงข้อมูล

urls รายการสตริง ไม่บังคับ

รายการ URL ไปยังไฟล์ที่จะทำให้ Bazel ใช้งานได้ แต่ละรายการต้องเป็น URL ของไฟล์, http หรือ https มีการเปลี่ยนเส้นทาง ไม่รองรับการตรวจสอบสิทธิ์ ระบบจะลองใช้ URL ตามลำดับจนกว่าจะพบ URL ที่ใช้งานได้ คุณจึงควรระบุมิเรอร์ในเครื่องก่อน หากการดาวน์โหลดทั้งหมดไม่สำเร็จ กฎก็จะไม่สำเร็จ

http_jar

http_jar(name, auth_patterns, canonical_id, downloaded_file_name, integrity, netrc, sha256, url,
         urls)

ดาวน์โหลด Jar จาก URL และทำให้ใช้งานได้เป็น java_import

ไฟล์ที่ดาวน์โหลดต้องมีนามสกุล .jar

ตัวอย่าง: สมมติว่าที่เก็บปัจจุบันมีซอร์สโค้ดสำหรับโปรแกรมแชท ซึ่งรูทที่ ไดเรกทอรี ~/chat-app จำเป็นต้องใช้ไลบรารี SSL ที่พร้อมใช้งานจาก http://example.com/openssl-0.2.jar

เป้าหมายในที่เก็บข้อมูล ~/chat-app จะขึ้นอยู่กับเป้าหมายนี้หากมีการเพิ่มบรรทัดต่อไปนี้ลงใน ~/chat-app/WORKSPACE

  load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_jar")

  http_jar(
      name = "my_ssl",
      url = "http://example.com/openssl-0.2.jar",
      sha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  )

เป้าหมายจะระบุ <code>@my_ssl//jar</code> เป็นไฟล์ที่พึ่งพิงกับ jar นี้

คุณอาจอ้างอิงไฟล์ในระบบปัจจุบัน (localhost) โดยใช้ "file:///path/to/file" ได้เช่นกัน หากใช้ระบบ Unix หากใช้ Windows ให้ใช้ "file:///c:/path/to/file" ในตัวอย่างนี้ทั้ง 2 ตัวอย่าง โปรดสังเกตเครื่องหมายทับ 3 ตัว (/) โดยเครื่องหมายทับ 2 ตัวแรกเป็นของ file:// และเครื่องหมายทับตัวที่ 3 เป็นของเส้นทางแบบสัมบูรณ์ไปยังไฟล์

Attributes

name ชื่อ ต้องระบุ

ชื่อที่ไม่ซ้ำกันสำหรับที่เก็บนี้

auth_patterns พจนานุกรม: สตริง -> String; ไม่บังคับ

ไม่บังคับให้แมปชื่อโฮสต์กับรูปแบบการให้สิทธิ์ที่กำหนดเอง หากมีชื่อโฮสต์ของ URL ในพจนานุกรมนี้ ระบบจะใช้ค่าดังกล่าวเป็นรูปแบบเมื่อสร้างส่วนหัวการให้สิทธิ์สําหรับคําขอ HTTP ซึ่งจะช่วยให้ใช้รูปแบบการให้สิทธิ์ที่กำหนดเองได้ ซึ่งใช้ในผู้ให้บริการพื้นที่เก็บข้อมูลระบบคลาวด์ทั่วไปจำนวนมาก รูปแบบนี้รองรับโทเค็น 2 รายการ ได้แก่ <login> และ <password> ซึ่งแทนที่ด้วยค่าที่เทียบเท่า ในไฟล์ netrc สำหรับชื่อโฮสต์เดียวกัน หลังจากฟอร์แมต ระบบจะตั้งค่าผลลัพธ์ เป็นค่าสำหรับช่อง Authorization ของคำขอ HTTP ตัวอย่างแอตทริบิวต์และ netrc สำหรับการดาวน์โหลด HTTP ไปยัง API ที่เปิดใช้ oauth2 โดยใช้โทเค็นของผู้ถือครองมีดังนี้

auth_patterns = {
    "storage.cloudprovider.com": "Bearer <password>"
}
netrc:
machine storage.cloudprovider.com
        password RANDOM-TOKEN
คําขอ HTTP สุดท้ายจะมีส่วนหัวดังต่อไปนี้
Authorization: Bearer RANDOM-TOKEN

canonical_id String; ไม่บังคับ

รหัส Canonical ของที่เก็บถาวรที่ดาวน์โหลด หากระบุไว้และไม่ว่างเปล่า Bazel จะไม่นำที่เก็บถาวรจากแคช เว้นแต่ว่ามีการเพิ่มรหัสดังกล่าวลงในแคชโดยคำขอที่มีรหัส Canonical เดียวกัน

downloaded_file_name String; ไม่บังคับ

ชื่อไฟล์ที่กำหนดให้กับ Jar ที่ดาวน์โหลด

integrity String; ไม่บังคับ

Checksum ที่คาดไว้ในรูปแบบความสมบูรณ์ของเนื้อหาย่อยของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับ checksum ของไฟล์ที่ดาวน์โหลด _การละเว้นการตรวจสอบผลรวมเป็นความเสี่ยงด้านความปลอดภัย เนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง_ ในกรณีที่ดีที่สุด การละเว้นช่องนี้จะทำให้บิลด์ของคุณไม่สมบูรณ์ คุณเลือกได้ว่าจะให้การพัฒนา ง่ายกว่า แต่ควรตั้งค่าแอตทริบิวต์นี้หรือ "sha256" ก่อนจัดส่ง

netrc สตริง ไม่บังคับ

ตำแหน่งของไฟล์ .netrc ที่จะใช้สำหรับการตรวจสอบสิทธิ์

sha256 String; ไม่บังคับ

SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับ SHA-256 ของไฟล์ที่ดาวน์โหลด _การละเว้น SHA-256 เป็นความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง_ ในกรณีที่ดีที่สุด การละเว้นช่องนี้จะทำให้บิลด์ของคุณไม่สมบูรณ์ คุณเลือกได้ว่าจะให้การพัฒนา ง่ายกว่า แต่ควรตั้งค่าแอตทริบิวต์นี้หรือ "ความสมบูรณ์" ก่อนจัดส่ง

url สตริง ไม่บังคับ

URL ของไฟล์ที่จะทําให้ Bazel พร้อมใช้งาน URL นี้ต้องเป็นไฟล์, http หรือ https มีการเปลี่ยนเส้นทาง ไม่รองรับการตรวจสอบสิทธิ์ คุณเพิ่มความยืดหยุ่นได้โดยใช้พารามิเตอร์ urls ที่อนุญาตให้ระบุ URL อื่นที่จะดึงข้อมูล URL ต้องลงท้ายด้วย ".jar"

urls รายการสตริง (ไม่บังคับ)

รายการ URL ของไฟล์ที่จะทําให้ Bazel ใช้งานได้ แต่ละรายการต้องเป็น URL ของไฟล์, http หรือ https มีการเปลี่ยนเส้นทาง ไม่รองรับการตรวจสอบสิทธิ์ ระบบจะลองใช้ URL ตามลำดับจนกว่าจะพบ URL ที่ใช้งานได้ คุณจึงควรระบุมิเรอร์ในเครื่องก่อน หากดาวน์โหลดทั้งหมดไม่สำเร็จ กฎก็จะล้มเหลว URL ทั้งหมดต้องลงท้ายด้วย ".jar"