我想将我在bitbucket中创建的R脚本文件作为片段来源。当我使用source_url
包中的devtools
时,我需要传递sha1值,而我不知道在哪里找到它。我尝试了RCurl
和httr
中的一些函数,但无法获取脚本文件。谁能帮帮我吗?
答案 0 :(得分:1)
您不需要传递sha1值。您可以使用原始文件的网址来获取bitbucket的片段(在片段中按下所需文件上的按钮RAW,然后从地址栏复制网址)。但是该代码段应该是公开的,如果它是私有的,则无法访问它。
例如,对于这个愚蠢的代码段:https://bitbucket.org/snippets/anpefi/q8g69
我将原始kk.R文件的Url设为https://bitbucket.org/!api/2.0/snippets/anpefi/q8g69/4ca5ac49e4e3535dfdc85949ac20408aeed97567/files/kk.R
然后,
> x <- 0
> source_url("https://bitbucket.org/!api/2.0/snippets/anpefi/q8g69/4ca5ac49e4e3535dfdc85949ac20408aeed97567/files/kk.R")
SHA-1 hash of file is 9a56cd15e13986bc8699560759225ade199c17f7
> x
[1] 1 2 3 4 5 6 7 8 9 10
如果我将代码段设置为私有,则不起作用。
将帖子 无论如何,如果你想要文件的sha-1,下载它并使用sha1sum(在Linux中)本地获取sha1 。或者,您可以暂时将代码段公开,应用上面的代码在输出中获取sha1,然后再将代码段设为私有。
好的,再次编辑。我刚才意识到,是的,您可以使用sha1获取私有代码段。
答案 1 :(得分:0)
以下代码应与代码段或存储库文件一起使用。使用的包是RCurl。
url <- "https://bitbucket.org/<username>/<password>/raw/master/<dir>/<filename>.R"
snippet <- RCurl::getURL(url, userpwd="<username>:<password>", httpauth = 1L)
eval(parse(text = snippet))
出于安全原因,您可以在BitBucket上创建第二个用户,并将第二个用户共享代码段/存储库作为只读。您可以使用第二个用户凭据来获取文件。
我使用存储库文件测试了上面的代码。