来自bitbucket私有代码段的来源R.

时间:2016-01-18 16:08:20

标签: r bitbucket rcurl devtools httr

我想将我在bitbucket中创建的R脚本文件作为片段来源。当我使用source_url包中的devtools时,我需要传递sha1值,而我不知道在哪里找到它。我尝试了RCurlhttr中的一些函数,但无法获取脚本文件。谁能帮帮我吗?

2 个答案:

答案 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上创建第二个用户,并将第二个用户共享代码段/存储库作为只读。您可以使用第二个用户凭据来获取文件。

我使用存储库文件测试了上面的代码。

相关问题